80
1 Exercícios – Padrões de Projeto de Software – Lincoln Kazuhiro Ito Padrões de Projeto de Software 1- Um dos princípios do padrão de arquitetura MVC é a separação da lógica da apresentação do modelo. PORQUE É, muitas vezes, mais prático manter a visão e o controlador unificados, inclusive, por demandas da tecnologia. Analisando-se as afirmações acima, conclui-se que ... ( ) a primeira afirmação é falsa, e a segunda é verdadeira. ( ) As duas afirmações são falsas. ( ) as duas afirmações são verdadeiras, e a segunda justifica a primeira. ( ) a primeira afirmação é verdadeira, e a segunda é falsa. ( ) as duas afirmações são verdadeiras, e a segunda não justifica a primeira. 2- Programadores se deparam muitas vezes com a situação onde é preciso acrescentar responsabilidades a objetos e não a classe. Uma alternativa é atribuir dinamicamente a um dado objeto. Este padrão é chamado de: ( ) Singleton. ( ) Instance. ( ) Decorator. ( ) protype. ( ) Bridge. 3- Assinale a afirmativa correta sobre o padrão Builder: ( ) A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida. ( ) Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto complexo tanto da especificação, quanto das partes que o compõem. ( ) Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a lógica de criação em uma hierarquia de herança. ( ) é uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, tornando o código dependente a complexidade das classes relacionadas. ( ) Deve-se é embutir no construtor da própria classe a lógica para criação de um objeto ou ainda distribuir a lógica de criação em vários métodos adicionais. 4- O padrão Adpater é bastante utilizado para compatibilizar classes implementas por programadores diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes em uma estrutura hierárquica única, sem precisar implementar novamente todas as funcionalidades e interfaces da classe já existente, considere as afirmativas: I - A ideia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com a classe já existente (Adaptee) com interface diferente da estrutura de classes que se pretende utilizar no sistema. Ii - Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa implementação realizada, mantém a uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos sem relação de herança. ( ) As afirmativas I, II, estão corretas e a afirmativa III está errada. ( ) As afirmativas I, III, estão corretas e II errada. ( ) As afirmativas II, III estão corretas e a afirmativa I está errada. ( ) As afirmativas I, II, III estão incorretas. ( ) As afirmativas estão todas corretas. 5- Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve ser utilizado o padrão Factory Method?

Exercícios Das Provas_Padrões de Projeto de Software

  • Upload
    leandro

  • View
    150

  • Download
    3

Embed Size (px)

DESCRIPTION

exercicios

Citation preview

  • 1 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- Um dos princpios do padro de arquitetura MVC a separao da lgica da apresentao do modelo.

    PORQUE

    , muitas vezes, mais prtico manter a viso e o controlador unificados, inclusive, por demandas da

    tecnologia.

    Analisando-se as afirmaes acima, conclui-se que ...

    ( ) a primeira afirmao falsa, e a segunda verdadeira.

    ( ) As duas afirmaes so falsas.

    ( ) as duas afirmaes so verdadeiras, e a segunda justifica a primeira.

    ( ) a primeira afirmao verdadeira, e a segunda falsa.

    ( ) as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.

    2- Programadores se deparam muitas vezes com a situao onde preciso acrescentar responsabilidades a

    objetos e no a classe. Uma alternativa atribuir dinamicamente a um dado objeto. Este padro chamado

    de:

    ( ) Singleton.

    ( ) Instance.

    ( ) Decorator.

    ( ) protype.

    ( ) Bridge.

    3- Assinale a afirmativa correta sobre o padro Builder:

    ( ) A legibilidade da soluo final, ou seja, para entender como um objeto criado e sob quais condies, fica

    comprometida.

    ( ) Um dos principais objetivos do padro Builder separar o algoritmo de criao de um objeto complexo

    tanto da especificao, quanto das partes que o compem.

    ( ) Deve-se separar no construtor da prpria classe a lgica para criao de um objeto e concentrar a lgica

    de criao em uma hierarquia de herana.

    ( ) uma abordagem que no facilita a criao de objetos com diferentes configuraes e representaes,

    tornando o cdigo dependente a complexidade das classes relacionadas.

    ( ) Deve-se embutir no construtor da prpria classe a lgica para criao de um objeto ou ainda distribuir a

    lgica de criao em vrios mtodos adicionais.

    4- O padro Adpater bastante utilizado para compatibilizar classes implementas por programadores

    diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes

    em uma estrutura hierrquica nica, sem precisar implementar novamente todas as funcionalidades e

    interfaces da classe j existente, considere as afirmativas: I - A ideia criar uma nova classe (Adapter) com a

    interface padro que se deseja para fazer a conexo com a classe j existente (Adaptee) com interface

    diferente da estrutura de classes que se pretende utilizar no sistema. Ii - Alm de reaproveitar totalmente a

    classe antiga sem precisar alterar o cdigo e entender a complexa implementao realizada, mantm a

    uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos sem

    relao de herana.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas esto todas corretas.

    5- Dentre as alternativas abaixo identifique a que NO define uma situao em que deve ser utilizado o padro

    Factory Method?

  • 2 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    ( ) Quando uma classe quer que suas subclasses especifiquem os objetos criados.

    ( ) Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da

    maneira como ele "montado".

    ( ) Quando uma classe (o criador) no pode antecipar a classe dos objetos que deve criar.

    ( ) Quando se quer localizar num ponto nico a conhecimento de qual subclasse est sendo usada.

    ( ) Quando classes delegam responsabilidade para uma entre vrias subclasses de apoio.

    6- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelas seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

    ( ) MEDIATOR.

    ( ) BUILDER.

    ( ) FACADE.

    ( ) SINGLETON.

    ( ) FACTORY METHOD.

    7- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelas seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

    ( ) Mediator.

    ( ) Singleton.

    ( ) Factory Method.

    ( ) Facade.

    ( ) Builder.

  • 3 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    8- Sobre o padro Composite podemos afirmar: I utilizado quando se pretende representar hierarquias

    partes-todo (ou todo-parte) de objetos, ou ainda, quando se pretende modelar relacionamento de

    agregao. Ii - o cliente poder acessar objetos compostos ou no de maneira uniforme, pois ir se

    relacionar com a classe abstrata III Um processamento pode- ser realizado diretamente por uma

    superclasse Componente, quando se trata de uma composio, e o processamento parcial feito pela classe

    filha, montando todas as partes que compem o objeto.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas esto todas corretas.

    9- "garbage collection" ser mais rpida do que o uso do padro singleton. Por que ento devemos usar o

    padro singleton?

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    10- Decorator tem como principal objetivo a decorao de classes em tempo de execuo, isto , adicionar

    novos produtos e/ou novas responsabilidades objetos dinamicamente sem alterar o cdigo das classes

    existentes. Descreva um exemplo que represente esse padro.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

  • 4 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.

    2- Decorator.

    3- Um dos principais objetivos do padro Builder separar o algoritmo de criao de um objeto complexo

    tanto da especificao, quanto das partes que o compem.

    4- As afirmativas I, II, esto corretas e a afirmativa III est errada.

    5- Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da

    maneira como ele "montado".

    6- BUILDER.

    7- Factory Method.

    8- As afirmativas I, II, esto corretas e a afirmativa III est errada.

    9- Gabarito Porque uma classe static SEMPRE carregada na memria quando a aplicao executada e a

    classe singleton no, sendo carregada na memria quando solicitada a primeira instncia.

    10- Gabarito Em uma janela pode-se adicionar objetos como barras de rolagem, caixas de texto, labels, etc.

    Pode-se criar uma classe JanelaDecorador que ser estendida pelos decoradores que iro inserir

    propriedades na janela. Podendo incluir barra vertical, horizontal e para cada criar outra classe decorador,

    inserindo caractersticas novas.

  • 5 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- (CESGRANRIO - 2009) Ao consultar informaes a respeito dos padres de projeto Adapter e Bridge, um

    Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a.

    ( ) O Bridge estabelece uma ponte entre uma abstrao e suas possveis implementaes.

    ( ) Ambos so padres estruturais que possuem alguns atributos em comum.

    ( ) O foco do Adapter a soluo de incompatibilidades entre duas interfaces existentes.

    ( ) Ambos promovem a flexibilidade ao fornecer um nvel de endereamento indireto para outro objeto.

    ( ) O Adapter inferior ao Bridge porque no evita a replicao de cdigo.

    2- A famlia de padres GoF dividida em trs grupos principais de padres, a saber:

    ( ) Padres de Criao; Padres Metodolgicos; Padres de Ponte.

    ( ) Padres de Processo; Padres de Singularidade; Padres de Prototipao.

    ( ) Padres de Proxy; Padres de Criao; Padres de Encadeamento.

    ( ) Padres Estruturais; Padres de Processo; Padres de Responsabilidade.

    ( ) Padres Comportamentais; Padres de Criao; Padres Estruturais.

    3- Considerando a classe de projetos GoF assinalem a opo cujos padres de projeto esto todos classificados

    como Comportamentais.

    ( ) Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy.

    ( ) Command,- bridge, - Iterator, - Mediator, bridge, State, Strategy.

    ( ) Command,- bridge, - Iterator, - Mediator, - Observer, State, Strategy.

    ( ) Command,- bridge, - Iterator, - Mediator, - composite - State, Strategy.

    ( ) Command,- Interpreter, - Iterator, - Mediator, - composite , State, Strategy.

    4- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelos seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

    ( ) FACADE.

    ( ) BUILDER.

    ( ) SINGLETON.

    ( ) MEDIATOR.

    ( ) FACTORY METHOD.

  • 6 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    5- Selecione a opo totalmente correta da responsabilidade correta para o do padro GRASP Criador:

    ( ) Tem a seguinte responsabilidade de responder de maneira intuitiva por um programador ou analista de

    sistema, baseado nas interao e nos mtodos menos utilizados, desta forma otimizando a criao.

    ( ) A responsabilidade definida pelo programador baseado nos mtodos solicitados pela classe que est

    sendo criada.

    ( ) Tem a responsabilidade de como primeira atividade procura-se objetos de software existentes que

    satisfaam os mtodos necessrios para a criao do objeto. Uma criao fica definida pela definida pela prpria

    classe alocando-se o mtodo.

    ( ) O padro de projeto est interessado no algoritmo de criao, e a determinar qual classe dever ser

    responsvel pelo uso de um novo mtodo referente a classe inicial.

    ( ) Tem a seguinte responsabilidade de fazer, pois sua funcionalidade est relacionado com a resposta a

    seguinte pergunta: quem deve criar um objeto A.

    6- Baseando-se nas necessidades apresentadas do lado direito do quadro abaixo, relacione-as ao padro

    adequado a utilizao e, em seguida marque a alternativa que corresponde a sequncia numerada

    correspondente.

    ( ) 4 - 2 - 1 3.

    ( ) 4 - 3 - 1 2.

    ( ) 2 - 3 - 4 1.

    ( ) 4 - 1 - 2 3.

    ( ) 3 - 4 - 1 2.

    7- (FGV - 2008) Considere as seguintes assertivas sobre as vantagens do uso de padres de software (software

    patterns):

    I. Padres de projeto proporcionam um vocabulrio comum de projeto, facilitando comunicao,

    documentao e aprendizado dos sistemas de software.

    II. Padres de projeto auxiliam no desenvolvimento de software por meio da reutilizao do projeto de

    solues computacionais j testadas e aprovadas.

    III. Uma biblioteca de padres pode ajudar a melhorar e padronizar o desenvolvimento de software.

    As assertivas corretas so:

    ( ) somente I e III.

    ( ) somente II e III.

    ( ) somente I e II.

    ( ) I, II e III.

    ( ) somente II.

    8- Considere as classes e mtodos abaixo: E escolha a opo correta sobre a gravura: E escolha a opo correta

    sobre a gravura:

  • 7 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    sobre o acoplamento e coeso:

    ( ) O mtodo void imp_NF (cod) poderia ser implementado na classe NF sem envolver mais nenhuma classe.

    No tendo outros mtodos o acoplamento no existiria o que o desejvel.

    ( ) Existem acoplamentos das classes cliente e Nota fiscal. E Nota fiscal e Item de Nota fiscal. Esta forma de

    acoplamento caracterizada por chamada de mtodos.

    ( ) Existem acoplamentos das classes que foram gerados de forma desnecessria pois poderiam ser

    incorporados em um nico mtodo e isto iria facilitar a manuteno e o entendimento.

    ( ) Existem acoplamentos que poderiam ser evitados, considerando apenas o diagrama, assim o mtodo de

    imprimir nota fiscal, dando-se o cdigo de cliente, pode ser mapeado de forma diferente melhorando-se o

    acoplamento.

    ( ) mtodo void imp_NF (cod) no deve ser implementado na classe NF. Obteria-se um projeto melhor se NF

    fosse acoplada a classe Cliente seus mtodos incorporados na classe cliente. Pode-se garantir um melhor

    acoplamento.

    9- O uso de classes "statics" garante que somente uma instncia estar em memria e que a destruio pelo

    "garbage collection" ser mais rpida do que o uso do padro singleton. Por que ento devemos usar o

    padro singleton?

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    10- Ter uma baixa coeso nos objetos do sistema pode gerar difcil compreenso e reutilizao, alm de afetar a

    manutenibilidade. O que ter baixa coeso?

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

  • 8 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- O Adapter inferior ao Bridge porque no evita a replicao de cdigo.

    2- Padres Comportamentais; Padres de Criao; Padres Estruturais.

    3- Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy.

    4- BUILDER.

    5- Tem a seguinte responsabilidade de fazer, pois sua funcionalidade est relacionada com a resposta a

    seguinte pergunta: quem deve criar um objeto A.

    6- 4 - 3 - 1 2.

    7- I, II e III.

    8- Existem acoplamentos das classes cliente e Nota fiscal. E Nota fiscal e Item de Nota fiscal. Esta forma de

    acoplamento caracterizada por chamada de mtodos.

    9- Resposta Quando se tem a necessidade de garantir que, apenas uma nica instncia de uma determinada

    classe, seja carregada no sistema.

    10- Gabarito quando se tem uma mesma classe executando muitos trabalhos, realizando muitas coisas no

    relacionadas.

  • 9 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- Sobre padres de projeto escolha a opo incorreta.

    ( ) Padres de projeto esto relacionados a diferentes nveis de abstrao no desenvolvimento de aplicaes

    orientadas a objetos, podendo aparecer ao longo de todo ciclo de anlise e projeto de um sistema.

    ( ) a diversidade de padres disponveis bastante grande, pode-se ter, por exemplo, padres arquiteturais,

    padres de anlise, padres de projeto e padres de cdigo.

    ( ) Cada padro descreve um problema que ocorrem repetidas vezes em nosso ambiente e fornece o ncleo da

    soluo para aquele problema, de tal maneira que se pode usar essa soluo milhes de vezes sem nunca faz-la

    da mesma forma.

    ( ) Os padres de projeto so descries de objetos que se comunicam e classes que so customizadas para

    resolver um problema genrico de design em um contexto especfico.

    ( ) Um padro de projeto define uma estrutura que obrigatoriamente no poder ser alterada pelo

    desenvolvedor.

    2- Um dos princpios do padro de arquitetura MVC a separao da lgica da apresentao do modelo.

    PORQUE

    , muitas vezes, mais prtico manter a viso e o controlador unificados, inclusive, por demandas da

    tecnologia.

    Analisando-se as afirmaes acima, conclui-se que ...

    ( ) a primeira afirmao verdadeira, e a segunda falsa.

    ( ) as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.

    ( ) As duas afirmaes so falsas.

    ( ) a primeira afirmao falsa, e a segunda verdadeira.

    ( ) as duas afirmaes so verdadeiras, e a segunda justifica a primeira.

    3- Para fazer a modelagem de um padro de projeto (design pattern) utilizando a UML DESNECESSRIO.

    ( ) identificar as solues especficas e particulares para o problema bsico e retific-la como um mecanismo.

    ( ) identificar os elementos do padro de projeto que devem ser vinculados aos elementos em um contexto

    especfico e represent-los como parmetros para colaborao.

    ( ) identificar as solues comuns para o problema bsico.

    ( ) entender o padro de projeto como uma colaborao representada com suas partes estruturais e

    comportamentais.

    ( ) fazer a modelagem do mecanismo como uma colaborao, fornecendo seus aspectos estruturais, assim

    como os aspectos comportamentais.

    4- (FESMIP-BA - 2011) O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes

    quantidades de objetos, de granularidade fina, de maneira eficiente, denominado:

    ( ) State.

    ( ) Flyweight.

    ( ) Composite.

    ( ) Builder.

    ( ) Strategy.

    5- Marque a alternativa que representa o padro GRASP que est relacionada com a seguinte questo: como

    projetar objetos e subsistemas de modo que variaes no causem impactos indesejados?

    ( ) Polimorfismo.

    ( ) Indireo.

    ( ) Inveno Pura.

    ( ) Variaes Protegidas.

    ( ) Controlador.

  • 10 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    6- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelas seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

    ( ) Singleton.

    ( ) Builder.

    ( ) Factory Method.

    ( ) Mediator.

    ( ) Facade.

    7- Segundo Metsker, o padro de projeto GoF _________________ aplicado para substituir a gerao de

    instncias no-inicializadas de uma classe, fornecendo novos objetos a partir de uma classe-exemplo.

    ( ) MEDIATOR.

    ( ) SINGLETON.

    ( ) PROTOTYPE.

    ( ) BUILDER.

    ( ) FACTORY METHOD.

    8- Iterator :Fornecer uma maneira de acessar seqencialmente os elementos de um objeto agregado sem

    expor sua implementao. (Gamma et al., 2000). Sobre este padro de projetos podemos afirmar com

    certeza:

    ( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos.

    ( ) tem uma grande facilidade de mudana de comportamento, pode-se alterar seu funcionamento sem que

    seja necessrio nenhuma mudana nas demais classes envolvidas, desde que envolvam colees e matrizes.

    ( ) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de

    implementao.

    ( ) Considerando objetos que implementam arrays, pode ser visto como uma classe intermediria de

    comunicao e gerenciamento, evitando que os objetos se comuniquem de forma direta.

    ( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos,

    mas no deve ser usado quando associado a percorrer arrays ou tabelas.

  • 11 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    9- Decorator tem como principal objetivo a decorao de classes em tempo de execuo, isto , adicionar

    novos produtos e/ou novas responsabilidades objetos dinamicamente sem alterar o cdigo das classes

    existentes. Descreva um exemplo que represente esse padro.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    10- Os mtodos polimrficos utilizam os conceitos de overloading e overrinding. Apresente a diferena entre os

    dois conceitos.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

  • 12 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- Um padro de projeto define uma estrutura que obrigatoriamente no poder ser alterada pelo

    desenvolvedor.

    2- as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.

    3- identificar as solues especficas e particulares para o problema bsico e reific-la como um mecanismo.

    4- Flyweight.

    5- Variaes Protegidas.

    6- Factory Method.

    7- PROTOTYPE.

    8- Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de

    implementao.

    9- Resposta em uma janela pode adicionar objetos como barras de rolagem,caixas de texto, etc. Pode se criar

    janelas decoratror que ser entendida pelos decoradores que irao inserir propriedades na janela.

    10- Resposta overloading=quando temos um excesso de carga ao mesmo tempo;overrindig=quando temos um

    excesso de acessos ao mesmo tempo.

  • 13 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- Os mtodos polimrficos utilizam os conceitos de overloading e overrinding. Apresente a diferena entre os

    dois conceitos.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    2- Baixo acoplamento um princpio-chave na Orientao objetos. O que deve ser feito para garantir o baixo

    acoplamento na definio dos objetos/classe/subsistema/sistema.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    3- Command : Encapsula uma solicitao como um objeto, permitindo a parametrizao de clientes com

    diferentes solicitaes, o enfileiramento e o registro de solicitaes e o suporte a operaes que possam ser

    desfeitas. (Gamma et al., 2000). Sobre ele podemos afirmar com toda a certeza:

    ( ) Este padro de projeto oferece pouca flexibilidade na arquitetura do sistema, uma vez que no permite

    adio de novas funcionalidades.

    ( ) O objetivo do padro de projeto Command encapsular chamadas de mtodos.

    ( ) esta abordagem que o objeto que est realizando a chamada do mtodo precisa conhecer com detalhes

    sobre seu funcionamento.

    ( ) Os mtodos, nesta abordagem devem ser padronizados e hierarquizados de forma que a implementao

    trabalhe novos objetos.

    ( ) Nesta abordagem o objeto que est realizando a chamada do mtodo precisa conhecer com detalhes a

    implementao em relao aparente ao local, tempo e ao objeto que vai realizar uma determinada tarefa.

    4- Qual das afirmativas abaixo no verdadeira:

    ( ) Um alto acoplamento aumenta a dificuldade de entendimento da soluo proposta, a diminuio das

    chances de reutilizao, alm de aumentar a complexidade da aplicao.

    ( ) acoplamento o grau de dependncia entre dois artefatos. uma medida de quo forte um elemento est

    conectado ou tem conhecimento de, ou depende de outros elementos.

    ( ) Dessa forma o padro Acoplamento Baixo utilizado para atribuir responsabilidades de modo que o

    acoplamento permanea baixo.

    ( ) O ideal que dois artefatos tenham alta dependncia. Isto garante um bom desempenho e facilita a

    manuteno dos artefatos.

    ( ) Um acoplamento definido para que classes que contenham mtodos que possibilitem alteraes de

    requisitos deve ser a menor possvel, desta forma se favorece futuras manutenes.

    5- Marque a alternativa que representa o padro GRASP que est relacionada com a seguinte questo: Como

    distribuir responsabilidades buscando alcanar Coeso Alta ou Acoplamento Baixo?

    ( ) controlador.

    ( ) Indireo.

    ( ) polimorfismo.

    ( ) variaes protegidas.

    ( ) Inveno Pura.

  • 14 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    6- Considere a definio: Visitor: Representar uma operao a ser realizada nos elementos de uma estrutura de

    objetos. Visitor permite que voc defina uma nova operao sem alterar as classes dos elementos nos quais

    a operao atua (Gamma et al., 2000). Qual das alternativas completamente verdadeira?

    ( ) A ideia principal do padro acima implementar diferentes algoritmos em uma hierarquia de classes, onde

    cada um deles pode ser substitudo por outro, independente do cliente que o utiliza.

    ( ) O padro de projeto acima indicado para ser utilizado quando uma abstrao tem dois aspectos, um

    dependente do outro. Encapsular tais aspectos em objetos separados permite que variem e sejam reusados

    separadamente;

    ( ) O principal objetivo do padro acima permitir que sejam adicionadas novas funcionalidades a classes

    previamente concebidas, sem que haja necessidade de alterar sua implementao.

    ( ) O padro de projeto acima deve ser utilizado no somente quando o comportamento de um objeto

    depende do seu estado, podendo ser alterado em tempo de execuo, mas tambm quando a funcionalidade de

    um objeto possui condicionais grandes.

    ( ) O principal objetivo do padro acima conservar as funcionalidades em no se permita adicionar novas, E

    obriga que haja necessidade de alterar sua implementao.

    7- Marque a alternativa que est relacionada ao padro GRASP que est relacionada com a seguinte questo:

    como tratar alternativas com base no tipo?

    ( ) Especialista da informao.

    ( ) Polimorfismo.

    ( ) Acoplamento fraco.

    ( ) Observador.

    ( ) State

    8- Assinale a afirmativa correta sobre o padro Builder:

    ( ) Deve-se separar no construtor da prpria classe a lgica para criao de um objeto e concentrar a lgica

    de criao em uma hierarquia de herana.

    ( ) uma abordagem que no facilita a criao de objetos com diferentes configuraes e representaes,

    tornando o cdigo dependente a complexidade das classes relacionadas.

    ( ) Um dos principais objetivos do padro Builder separar o algoritmo de criao de um objeto complexo

    tanto da especificao, quanto das partes que o compem.

    ( ) A legibilidade da soluo final, ou seja, para entender como um objeto criado e sob quais condies, fica

    comprometida.

    ( ) Deve-se embutir no construtor da prpria classe a lgica para criao de um objeto ou ainda distribuir a

    lgica de criao em vrios mtodos adicionais.

    9- Em padro de projeto existe uma situao onde uma classe chama um mtodo abstrato especificado em

    alguma classe abstrata (ou interface) e a subclasse concreta vai decidir que tipo exato de objeto criar e

    retornar.

    Baseado nessa descrio marque a alternativa que aponta o padro relacionado.

    ( ) Singleton.

    ( ) Builder.

    ( ) Mediator.

    ( ) Factory Method.

    ( ) Facade.

    10- Entre as vantagens do padro Interpreter podem-se citar: I - facilidade para mudar e estender a gramtica,

    pois, o padro utiliza classes para representar as regras gramaticais. I i - Pode-se usar herana para mudar ou

    estender a gramtica, assim como expresses existentes podem ser modificadas incrementalmente e novas

    expresses podem ser criadas a partir das existentes; Iii - a implementao da gramtica mais fcil, pois,

  • 15 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    classes que definem os ns folhas da rvore tem implementaes similares. Por outro lado, uma das

    desvantagens que o padro Interpreter define, ao menos, uma classe para cada regra da gramtica, logo,

    gramticas com muitas regras so difceis de manter e administrar.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas esto todas corretas.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas I, III, esto corretas e II errada.

  • 16 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- Gabarito O conceito OVERLOADING a sobrecarga dos mtodos: define vrios mtodos de mesmo nome

    com assinaturas diferentes.

    O conceito OVERRIDING altera o comportamento do mtodo na subclasse, mantendo a mesma assinatura,

    com funcionalidade diferente.

    2- Gabarito Gabarito: Deve-se manter os objetos/classe/subsistema/sistema o mais independente possvel,

    ou seja, no possui conhecimento sobre o outro ou confia em outro.

    3- O objetivo do padro de projeto Command encapsular chamadas de mtodos.

    4- O ideal que dois artefatos tenham alta dependncia. Isto garante um bom desempenho e facilita a

    manuteno dos artefatos.

    5- Inveno Pura.

    6- O principal objetivo do padro acima permitir que sejam adicionadas novas funcionalidades a classes

    previamente concebidas, sem que haja necessidade de alterar sua implementao.

    7- Polimorfismo.

    8- Um dos principais objetivos do padro Builder separar o algoritmo de criao de um objeto complexo

    tanto da especificao, quanto das partes que o compem.

    9- Factory Method.

    10- As afirmativas esto todas corretas.

  • 17 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projetos de Software

    1- Analise as sentenas sobre padres de projeto de software e, em seguida, assinale a alternativa correta:

    I. Permitem descrever fragmentos de projeto e reusar ideias de projeto

    II. Do nome e forma a procedimentos abstratos, regras e melhores prticas relativas s tcnicas orientadas

    a objetos

    III. Ajudam a escolher alternativas de projeto que tornam um sistema reutilizvel.

    ( ) Todas as sentenas esto corretas.

    ( ) Apenas as sentenas I e II esto corretas.

    ( ) Apenas as sentenas I e III esto corretas.

    ( ) Apenas as sentenas II e III esto corretas.

    ( ) Apenas a sentena II est correta.

    2- Para fazer a modelagem de um padro de projeto (design pattern) utilizando a UML DESNECESSRIO.

    ( ) fazer a modelagem do mecanismo como uma colaborao, fornecendo seus aspectos estruturais, assim

    como os aspectos comportamentais.

    ( ) identificar as solues especficas e particulares para o problema bsico e retific-la como um mecanismo.

    ( ) entender o padro de projeto como uma colaborao representada com suas partes estruturais e

    comportamentais.

    ( ) identificar as solues comuns para o problema bsico.

    ( ) identificar os elementos do padro de projeto que devem ser vinculados aos elementos em um contexto

    especfico e represent-los como parmetros para colaborao.

    3- O padro Adpater bastante utilizado para compatibilizar classes implementas por programadores

    diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes

    em uma estrututura hierrquica nica, sem precisar implementar novamente todas as funcionalidades e

    interfaces da classe j existente, considere as afirmativas: I A idia criar uma nova classe (Adapter) com a

    interface padro que se deseja para fazer a conexo com a classe j existente (Adaptee) com interface

    diferente da estrutura de classes que se pretende utilizar no sistema. ii Alm de reaproveitar totalmente a

    classe antiga sem precisar alterar o cdigo e entender a complexa implementao realizada, mantm a

    uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos sem

    relao de herana.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas esto todas corretas.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    4- Consideram as afirmativa abaixo sobre o padro protype I Declara um mtodo chamado clone na

    superclasse abstrata do modelo (Prototype). Em funo desta declarao, cada classe concreta derivada

    deve ser capaz de gerar uma nova instncia de si prprio. II , Entre as aplicaes para este padro de projeto

    est a facilidade de instanciar classes em tempo de execuo. III Quando as instancias de uma classe

    apresentam poucas combinaes de estados, pode ser mais conveniente definir previamente um conjunto

    de prottipos e clonlos, sempre que foi necessrio.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas esto todas corretas.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

  • 18 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    5- (CESGRANRIO 2010) Em um sistema de software para controlar pedidos para entrega em domiclio, deve

    haver uma funcionalidade que permita que o atendente solicite a repetio de um pedido anteriormente

    feito por um cliente. O gerente do restaurante informou que essa funcionalidade aumentaria a agilidade no

    atendimento aos clientes, visto que muitos deles tendem a fazer pedidos similares aos que j fizeram

    anteriormente. Ao usar essa funcionalidade, o atendente do restaurante seleciona um pedido cuja

    composio corresponde a produtos normalmente requisitados pelos clientes e solicita ao sistema a

    construo de um novo pedido igual ao selecionado. Esse novo pedido pode, ento, ser alterado pelo

    atendente se o cliente solicitar a adio de novos produtos do cardpio, por exemplo. Portanto, a parte

    principal dessa funcionalidade corresponde a criar uma cpia de um pedido a partir de pedido preexistente.

    Na implementao dessa funcionalidade, seu desenvolvedor deve utilizar qual padro de projeto do

    catlogo GoF (Gang of Four), dentre os listados abaixo?

    ( ) Factory Method.

    ( ) Command.

    ( ) Abstract Factory.

    ( ) Prototype.

    ( ) Builder.

    6- Iterator :Fornecer uma maneira de acessar sequencialmente os elementos de um objeto agregado sem

    expor sua implementao. (Gamma et al., 2000). Sobre este padro de projetos podemos afirmar com

    certeza:

    ( ) Considerando objetos que implementam arrays, pode ser visto como uma classe intermediria de

    comunicao e gerenciamento, evitando que os objetos se comuniquem de forma direta.

    ( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos.

    ( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos,

    mas no deve ser usado quando associado a percorrer arrays ou tabelas.

    ( ) tem uma grande facilidade de mudana de comportamento, pode-se alterar seu funcionamento sem que

    seja necessrio nenhuma mudana nas demais classes envolvidas, desde que envolvam colees e matrizes.

    ( ) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de

    implementao.

    7- Decorator tem como principal objetivo a decorao de classes em tempo de execuo, isto , adicionar

    novos produtos e/ou novas responsabilidades objetos dinamicamente sem alterar o cdigo das classes

    existentes. Descreva um exemplo que represente esse padro.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    8- Considere a definio: State: Permitir a um objeto alterar o seu comportamento quando o seu estado

    interno mudar. O objeto parecer ter mudado de classe (Gamma et al., 2000). Qual das alternativas

    completamente verdadeira?

    ( ) O padro de projeto acima deve ser utilizado no somente quando o comportamento de um objeto

    depende do seu estado, podendo ser alterado em tempo de execuo, mas tambm quando a funcionalidade de

    um objeto possui condicionais grandes.

    ( ) O principal objetivo do padro acima conservar as funcionalidades em no se permita adicionar novas, E

    obriga que haja necessidade de alterar sua implementao.

    ( ) O principal objetivo do padro acima permitir que sejam adicionadas novas funcionalidades a classes

    Previamente concebidas, sem que haja necessidade de alterar sua implementao.

  • 19 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    ( ) A ideia principal do padro acima implementar diferentes algoritmos em uma hierarquia de classes, onde

    cada um deles pode ser substitudo por outro, independente do cliente que o utiliza.

    ( ) O padro de projeto acima indicado para ser utilizado quando uma abstrao tem dois aspectos, um

    dependente do outro. Encapsular tais aspectos em objetos separados permite que variem e sejam reusados

    separadamente

    9- Uma classe com alto acoplamento faz com que o reuso fique comprometido. Apresente uma justificativa

    para esse problema.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    10- (COPEVEUFAL 2011) O diagrama de classes apresentado na figura no representa fielmente um buffer que

    passa por estados sucessivos de transformao. Em outras palavras, um buffer, que est inicialmente vazio,

    depois pode ficar parcialmente cheio e, possivelmente, pode ficar cheio.

    Dentre as opes apresentadas a seguir, qual o padro de projetos que melhor se adequaria para modelar

    essa caracterstica dinmica do buffer?

    ( ) Mediator.

    ( ) Singleton.

    ( ) Composite.

    ( ) Dynamic behavior.

    ( ) State.

  • 20 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- Todas as sentenas esto corretas.

    2- identificar as solues especficas e particulares para o problema bsico e retific-la como um mecanismo.

    3- As afirmativas I, II, esto corretas e a afirmativa III est errada.

    4- As afirmativas esto todas corretas.

    5- Prototype.

    6- Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de

    implementao.

    7- Gabarito Em uma janela pode-se adicionar objetos como barras de rolagem, caixas de texto, labels, etc.

    Pode-se criar uma classe JanelaDecorador que ser estendida pelos decoradores que iro inserir

    propriedades na janela. Podendo incluir barra vertical, horizontal e para cada criar outra classe decorador,

    inserindo caractersticas novas.

    8- O padro de projeto acima deve ser utilizado no somente quando o comportamento de um objeto depende

    do seu estado, podendo ser alterado em tempo de execuo, mas tambm quando a funcionalidade de um

    objeto possui condicionais grandes.

    9- Gabarito O problema ocorre pois para reaproveitar mtodos acoplados torna-se necessria a presena

    adicional das classes relacionadas, dificultando o processo de reutilizao.

    10- State.

  • 21 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- Decorator tem como principal objetivo a decorao de classes em tempo de execuo, isto , adicionar

    novos produtos e/ou novas responsabilidades objetos dinamicamente sem alterar o cdigo das classes

    existentes. Descreva um exemplo que represente esse padro.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________. 2- No desenvolvimento de sistemas baseado na Orientao a Objetos so utilizados padres de projetos que

    buscam utilizar conhecimentos j adquiridos e comprovados. Assim, o padro de projeto GRASP COESO

    tem como objetivo desenvolver procedimentos com objetivo bem definido. Quais as facilidades so

    atribudas ao uso desse padro?

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________. 3- Podemos afirmar que os Padres de Criao da famlia GoF:

    ( ) Fornecem um guia de como instanciar objetos, que normalmente envolve decises dinmicas para

    escolher, por exemplo, qual classe instanciar ou a quais objetos delegar responsabilidade.

    ( ) Colocam em dvida o tratamento dispensado aos usurios na fase de levantamento das necessidades.

    ( ) Definem caminhos comuns para a organizao de diferentes tipos de objetos, facilitando sua integrao e

    colaborao mtua.

    ( ) So projetados para organizar, gerenciar e combinar diferentes comportamentos.

    ( ) Subutilizam as rotinas de tratamento de erros, em virtude da depurao de cdigo fonte na fase de

    levantamento das necessidades junto aos usurios.

    4- Considerando a classe de projetos GoF assinale a opo cujos padres de projeto esto todos classificados

    como criao:

    ( ) Abstractly factory ; Builder ; Composite ; Protype Singleton.

    ( ) Abstractly factory ; Builder ; Factory Method ; Protype Singleton.

    ( ) Command ; Builder ; Factory Method ; Protype Singleton.

    ( ) Abstractly factory ; Bridge ; Factory Method ; Protype ; Singleton.

    ( ) Abstractly factory ; Builder ; Factory Method ; Decorator Singleton.

    5- O projeto Orientado a objetos pressupe a criao de modelos de domnio a partir dos requisitos

    identificados para entendimento do negcio e apresentao de uma soluo. A esses modelos so

    acrescidas os aspectos fsicos, como os mtodos e a troca de mensagens entre eles. A questo decidir a

    melhor forma de interao entre os mtodos, ou seja, a atribuio da responsabilidade estabelecida para

    que se possa gerar um melhor resultado.

    Visando facilitar a construo de solues so apresentados os padres de projeto. Assinale dentre as

    alternativas a seguir a que NO define uma caracterstica atribuda ao uso dos padres.

    ( ) O nome do padro utilizado para agrupar ideias em um conceito.

    ( ) Fornece orientao de aplicao em circunstncias variveis.

    ( ) uma descrio nomeada de um problema e soluo que pode ser aplicado em novos contextos.

    ( ) So definidos por especialistas de problemas e servem para aplicao direta em qualquer contexto.

    ( ) apresentado atravs de uma descrio contendo informaes de identificao e registro, como: Nome,

    Problema, Sumrio, Soluo, Consequncias e Padres Relacionados.

  • 22 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    6- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelas seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

    ( ) Facade.

    ( ) Builder.

    ( ) Mediator.

    ( ) Factory Method.

    ( ) Singleton.

    7- Segundo Metsker, o padro de projeto GoF _________________ aplicado para substituir a gerao de

    instncias no-inicializadas de uma classe, fornecendo novos objetos a partir de uma classe-exemplo.

    ( ) PROTOTYPE.

    ( ) BUILDER.

    ( ) MEDIATOR.

    ( ) SINGLETON.

    ( ) FACTORY METHOD.

    8- (FUNCAB - 2010) Segundo Trott e Shalloway, o princpio de projetar a partir de um contexto, um conceito

    para criar a viso global antes de se projetar os detalhes que aparecem nos componentes. Das opes

    seguintes, o padro de projeto que um melhor exemplo de aplicao desse princpio :

    ( ) bridge.

    ( ) faa de.

    ( ) adapter.

    ( ) canvas.

    ( ) abstract factory.

    9- Sobre o padro Command: I - ideal para acessar elementos de colees, matrizes ou estruturas de dados

    encadeados II - A vantagem desta abordagem que o objeto que est realizando a chamada do mtodo no

    precisa saber nada sobre seu funcionamento. III - Este padro de projeto oferece uma maior flexibilidade na

    arquitetura do sistema, uma vez que permite a adio de novas funcionalidades (comandos) sem a

    necessidade de mudar a arquitetura. Podemos afirmar:

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas I, II, III e IV esto corretas.

    ( ) As afirmativas I, III, esto corretas e II errada.

  • 23 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    10- (CESPE 0 2007) Considerando a figura, que apresenta um diagrama de relacionamento entre os padres de

    projeto descritos no livro GoF Book, julgue os prximos itens acerca dos conceitos de programao

    orientada a objetos e padres de projetos orientados a objetos.

    I A implementao de padres de projeto criacionais em linguagens como C#, Delphi e Java sempre envolver a

    alocao de memria para a criao de objetos.

    II A implementao de montadores de rvores sintticas apia-se mais no uso do padro Singleton que no uso

    do padro Composite.

    III A implementao de tratadores de eventos de interface grfica apia-se mais no uso do padro Observer que

    no uso do padro Visitor.

    IV A implementao de famlias portveis de componentes de interface grfica depende mais do emprego do

    padro Chain of Responsibility que do padro AbstractFactory.

    V O padro TemplateMethod mais simples que o padro Memento. Esto certos apenas os itens.

    ( ) II, III e IV.

    ( ) II, III e V.

    ( ) I, IV e V.

    ( ) I, III e V.

    ( ) I, II e IV.

  • 24 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- Gabarito Em uma janela pode-se adicionar objetos como barras de rolagem, caixas de texto, labels, etc.

    Pode-se criar uma classe JanelaDecorador que ser estendida pelos decoradores que iro inserir

    propriedades na janela. Podendo incluir barra vertical, horizontal e para cada criar outra classe decorador,

    inserindo caractersticas novas.

    2- Gabarito Facilidade na reutilizao, manuteno e consequente garantia de continuidade.

    3- Fornecem um guia de como instanciar objetos, que normalmente envolve decises dinmicas para escolher,

    por exemplo, qual classe instanciar ou a quais objetos delegar responsabilidade.

    4- Abstractly factory ; Builder ; Factory Method ; Protype Singleton.

    5- So definidos por especialistas de problemas e servem para aplicao direta em qualquer contexto.

    6- Factory Method.

    7- PROTOTYPE.

    8- Bridge.

    9- As afirmativas II, III esto corretas e a afirmativa I est errada.

    10- I, III e V.

  • 25 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- A definio Captar e externalizar um estado interno de um objeto, de maneira que esse estado seja

    restaurado ao objeto em outro momento, sem violar seu encapsulamento (Gamma et al., 2000). Refre-se a

    que padro de projeto:

    ( ) Iterator.

    ( ) Command.

    ( ) Mediator.

    ( ) Builder.

    ( ) Memento.

    2- Relacione os padres de projetos listados abaixo com suas respectivas finalidades:

    PADRES DE PROJETO

    1. Facade (fachada)

    2. Decorator (decorador)

    3. Memento (lembrana)

    4. Proxy (procurador)

    5. Observer (observador) FINALIDADES

    ( ) Define uma dependncia um para muitos entre objetos tal que, quando o estado de um objeto muda,

    todos os seus dependentes so notificados e atualizados automaticamente.

    ( ) Fornece uma interface unificada para um conjunto de objetos que constituem um subsistema. Define

    uma interface de mais alto nvel que torna o subsistema mais fcil de usar.

    ( ) Sem violar o encapsulamento, captura e exterioriza o estado interno de um objeto, tal que o objeto

    possa ser restaurado a este estado mais tarde.

    ( ) Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexvel

    para a extenso de funcionalidade.

    ( ) Controla o acesso a um objeto atravs de outro objeto, que atua como seu substituto, ou como um

    envoltrio. Assinale a alternativa que indica a sequncia correta, de cima para baixo.

    ( ) 3 - 1 - 5 - 2 4.

    ( ) 1 - 5 - 3 - 4 2.

    ( ) 5 - 1 - 3 - 4 2.

    ( ) 3 - 5 - 1 - 4 2.

    ( ) 5 - 1 - 3 - 2 4.

    3- Considerando a classe de projetos GoF assinalem a opo cujos padres de projeto esto todos classificados

    como Comportamentais:

    ( ) Command,- bridge, - Iterator, - Mediator, - Observer, State, Strategy.

    ( ) Command,- Interpreter, - Iterator, - Mediator, - composite , State, Strategy.

    ( ) Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy.

    ( ) Command,- bridge, - Iterator, - Mediator, - composite - State, Strategy.

    ( ) Command,- bridge, - Iterator, - Mediator, bridge, State, Strategy.

    4- (FESMIP-BA - 2011) O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes

    quantidades de objetos, de granularidade fina, de maneira eficiente, denominado:

    ( ) Strategy.

    ( ) Composite.

    ( ) State.

    ( ) Flyweight.

    ( ) Builder.

  • 26 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    5- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelas seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

    ( ) FACADE.

    ( ) MEDIATOR.

    ( ) BUILDER.

    ( ) FACTORY METHOD.

    ( ) SINGLETON.

    6- Baseando-se nas necessidades apresentadas do lado direito do quadro abaixo, relacione-as ao padro

    adequado a utilizao e, em seguida marque a alternativa que corresponde a sequncia numerada

    correspondente.

    ( ) 4 - 1 - 2 3.

    ( ) 4 - 3 - 1 2.

    ( ) 4 - 2 - 1 3.

    ( ) 3 - 4 - 1 2.

    ( ) 2 - 3 - 4 1.

    7- (FGV - 2008) Considere as seguintes assertivas sobre as vantagens do uso de padres de software (software

    patterns):

    I. Padres de projeto proporcionam um vocabulrio comum de projeto, facilitando comunicao,

    documentao e aprendizado dos sistemas de software.

    II. Padres de projeto auxiliam no desenvolvimento de software por meio da reutilizao do projeto de

    solues computacionais j testadas e aprovadas.

    III. Uma biblioteca de padres pode ajudar a melhorar e padronizar o desenvolvimento de software.

    As assertivas corretas so:

  • 27 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    ( ) I, II e III.

    ( ) somente I e III.

    ( ) somente I e II.

    ( ) somente II.

    ( ) somente II e III.

    8- Padres de projeto esto relacionados a diferentes nveis de abstrao no desenvolvimento de aplicaes

    orientadas a objetos, podendo aparecer ao longo de todo ciclo de vida de um sistema. Os padres so

    diversos, por exemplo, padres arquiteturais, padres de anlise, padres de projeto e padres de cdigo,

    padres estruturais, padres comportamentais. Explique o que so padres comportamentais e d exemplo

    de dois deles.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    9- Ter uma baixa coeso nos objetos do sistema pode gerar difcil compreenso e reutilizao, alm de afetar a

    manutenibilidade. O que ter baixa coeso?

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    10- (FUNIVERSA - 2009) Considerando os padres de projetos (design patterns) da engenharia de software que

    utilizam as melhores prticas em orientao a objetos para atingir os resultados desejados, correto afirmar

    que o padro:

    ( ) aggregator utilizado para compor objetos em estruturas de rvore, para representar hierarquias.

    ( ) decorator utilizado para prover uma maneira de acessar os elementos de um objeto agregado

    sequencialmente sem expor sua representao interna.

    ( ) composite utilizado para oferecer uma interface nica para um conjunto de interfaces de um subsistema,

    definindo uma interface de nvel mais elevado que torna o subsistema mais fcil de usar.

    ( ) memento permite definir uma nova operao, sem mudar as classes dos elementos nos quais opera.

    ( ) bridge utilizado para desacoplar uma abstrao de sua implementao para que os dois possam variar

    independentemente.

  • 28 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- Memento.

    2- 5 - 1 - 3 - 2 4.

    3- Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy.

    4- Flyweight.

    5- BUILDER.

    6- 4 - 3 - 1 2.

    7- I, II e III.

    8- Gabarito Padres Comportamentais so projetados para organizar, gerenciar e combinar diferentes

    comportamentos. H 11 padres comportamentais GoF: Chain of Responsibility, Command, Interpreter,

    Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor.

    9- Gabarito quando se tem uma mesma classe executando muitos trabalhos, realizando muitas coisas no

    relacionadas.

    10- bridge utilizado para desacoplar uma abstrao de sua implementao para que os dois possam variar

    independentemente.

  • 29 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software.

    1- Relacione os padres de projetos listados abaixo com suas respectivas finalidades:

    PADRES DE PROJETO

    1. Facade (fachada)

    2. Decorator (decorador)

    3. Memento (lembrana)

    4. Proxy (procurador)

    5. Observer (observador)

    FINALIDADES

    ( ) Define uma dependncia um para muitos entre objetos tal que, quando o estado de um objeto muda,

    todos os seus dependentes so notificados e atualizados automaticamente.

    ( ) Fornece uma interface unificada para um conjunto de objetos que constituem um subsistema. Define

    uma interface de mais alto nvel que torna o subsistema mais fcil de usar.

    ( ) Sem violar o encapsulamento, captura e exterioriza o estado interno de um objeto, tal que o objeto

    possa ser restaurado a este estado mais tarde.

    ( ) Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexvel

    para a extenso de funcionalidade.

    ( ) Controla o acesso a um objeto atravs de outro objeto, que atua como seu substituto, ou como um

    envoltrio.

    Assinale a alternativa que indica a sequncia correta, de cima para baixo:

    ( ) 5 - 1 - 3 - 4 2.

    ( ) 1 - 5 - 3 - 4 2.

    ( ) 3 - 1 - 5 - 2 4.

    ( ) 3 - 5 - 1 - 4 2.

    ( ) 5 - 1 - 3 - 2 4.

    2- Consideram as afirmativa abaixo sobre o padro protype I - Declara um mtodo chamado clone na

    superclasse abstrata do modelo (Prototype). Em funo desta declarao, cada classe concreta derivada

    deve ser capaz de gerar uma nova instncia de si prprio. II - , Entre as aplicaes para este padro de

    projeto est a facilidade de instanciar classes em tempo de execuo. III Quando as instancias de uma classe

    apresentam poucas combinaes de estados, pode ser mais conveniente definir previamente um conjunto

    de prottipos e clon-los, sempre que foi necessrio.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas I, II, III esto incorretas.

    3- O padro de projeto Singleton um dos padres mais conhecidos e extensivamente utilizados em

    programao orientada a objetos. Sobre ele podemos afirmar I - Est direcionado para as situaes onde

    precisamos manter uma nica instancia de uma classe durante toda a execuo da aplicao. II - A sua

    estrutura bastante simples, existe apenas uma classe chamada Singleton, que define um mtodo chamado

    Instance, responsvel poder retornar aos clientes nica instancia da classe. III Na linguagem Java os

    modificadores states e private devem garantir uma mesma instncia para todos os objetos criados e evitar

    acesso pblico;

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas esto todas corretas.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

  • 30 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    4- Em padro de projeto existe uma situao onde uma classe chama um mtodo abstrato especificado em

    alguma classe abstrata (ou interface) e a subclasse concreta vai decidir que tipo exato de objeto criar e

    retornar.

    Baseado nessa descrio marque a alternativa que aponta o padro relacionado.

    ( ) Singleton.

    ( ) Factory Method.

    ( ) Builder.

    ( ) Mediator.

    ( ) Facade.

    5- Entre as vantagens do padro Interpreter podem-se citar: I - facilidade para mudar e estender a gramtica,

    pois, o padro utiliza classes para representar as regras gramaticais. I i - Pode-se usar herana para mudar ou

    estender a gramtica, assim como expresses existentes podem ser modificadas incrementalmente e novas

    expresses podem ser criadas a partir das existentes; Iii - a implementao da gramtica mais fcil, pois,

    classes que definem os ns folhas da rvore tem implementaes similares. Por outro lado, uma das

    desvantagens que o padro Interpreter define, ao menos, uma classe para cada regra da gramtica, logo,

    gramticas com muitas regras so difceis de manter e administrar.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas I, II, III esto incorretas.

    ( ) As afirmativas esto todas corretas.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    6- (CONSULPLAN - 2012) O desenvolvimento de software uma atividade que apresenta dificuldades, ligada ao

    entendimento do problema. Design Patterns surgiram na busca de solues para as dificuldades, tornando-

    se um mecanismo eficiente no compartilhamento de conhecimento entre os desenvolvedores. Gamma

    prope um modo de categorizao dos DESIGN PATTERNS, definindo famlias de padres relacionados,

    descritos a seguir.

    I. Abrange a configurao e inicializao de objetos e classes.

    II. Lida com as interfaces e a implementao das classes e dos objetos.

    III. Lida com as interaes dinmicas entre grupos de classes e objetos.

    Essas famlias so denominadas, respectivamente,

    ( ) Behavioral Patterns, Structural Patterns e Standard Patterns.

    ( ) Standard Patterns, Creational Patterns e Structural Patterns.

    ( ) Creational Patterns, Structural Patterns e Behavioral Patterns.

    ( ) Structural Patterns, Standard Patterns e Creational Patterns.

    ( ) Standard Patterns, Structural Patterns e Behavioral Patterns.

    7- Podemos afirmar que os Padres de Criao da famlia GoF:

    ( ) Subutilizam as rotinas de tratamento de erros, em virtude da depurao de cdigo fonte na fase de

    levantamento das necessidades junto aos usurios.

    ( ) So projetados para organizar, gerenciar e combinar diferentes comportamentos.

    ( ) Fornecem um guia de como instanciar objetos, que normalmente envolve decises dinmicas para

    escolher, por exemplo, qual classe instanciar ou a quais objetos delegar responsabilidade.

    ( ) Definem caminhos comuns para a organizao de diferentes tipos de objetos, facilitando sua integrao e

    colaborao mtua.

    ( ) Colocam em dvida o tratamento dispensado aos usurios na fase de levantamento das necessidades.

  • 31 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    8- Considerando a classe de projetos GoF assinale a opo cujos padres de projeto esto todos classificados

    como Estruturais:

    ( ) singleton; bridge ; protype; decorator ; faa de ; flyweight ; Proxy.

    ( ) singleton; bridge ; composite; decorator ; faa de ; flyweight; Proxy.

    ( ) adapter ; bridge ; protype decorator ; faa de ; flyweight ; singleton.

    ( ) adapter ; bridge ; composite ; decorator ; faa de ; flyweight ; singleton.

    ( ) adapter ; bridge ; composite ; decorator ; faa de ; flyweight ; Proxy.

    9- Segundo Metsker, 2004, o padro de projeto ______________ tem como soluo mover a lgica de

    construo de uma classe para um objeto externo, a fim de reduzir a complexidade da mesma e permitir a

    construo gradual de objetos-alvo a partir dessa classe.

    Escolha uma das alternativas abaixo que preenche corretamente a lacuna apresentada na descrio acima.

    ( ) MEDIATOR.

    ( ) FACADE.

    ( ) FACTORY METHOD.

    ( ) BUILDER.

    ( ) SINGLETON.

    10- Dentre as alternativas abaixo identifique a que NO define uma situao em que deve ser utilizado o padro

    Factory Method?

    ( ) Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da

    maneira como ele "montado".

    ( ) Quando se quer localizar num ponto nico a conhecimento de qual subclasse est sendo usada.

    ( ) Quando uma classe (o criador) no pode antecipar a classe dos objetos que deve criar.

    ( ) Quando uma classe quer que suas subclasses especifiquem os objetos criados.

    ( ) Quando classes delegam responsabilidade para uma entre vrias subclasses de apoio.

  • 32 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- 5 - 1 - 3 - 2 4.

    2- As afirmativas esto todas corretas.

    3- As afirmativas esto todas corretas

    4- Factory Method.

    5- As afirmativas esto todas corretas.

    6- Creational Patterns, Structural Patterns e Behavioral Patterns.

    7- Fornecem um guia de como instanciar objetos, que normalmente envolve decises dinmicas para escolher,

    por exemplo, qual classe instanciar ou a quais objetos delegar responsabilidade.

    8- adapter ; bridge ; composite ; decorator ; faa de ; flyweight ; Proxy

    9- BUILDER.

    10- Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da

    maneira como ele "montado".

  • 33 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- Considerando que o padro tem o objetivo de garantir que existe apenas uma instancia de uma certa classe

    a qualquer instante e em qualquer ponto de um sistema. Indique o padro mencionado e cite uma vantagem

    de sua utilizao.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    2- Considere que o sistema precisa acessar em uma base de dados feita com software antigo e que se corre o

    risco de provocar futuras manutenes no novo sistema. Que padro Grasp podemos utilizar para se isolar

    os mtodos que acessam esse banco?

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    3- (FCC-2011) Os design patterns

    ( ) podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar padres

    de projeto representando-os como colaboraes.

    ( ) so projetos de arquitetura para um domnio especfico de aplicao e sempre trazem componentes

    predefinidos que envolvem cdigo de programao.

    ( ) so de uso exclusivo em processos de desenvolvimento de solues orientado a objetos, j que os objetos

    so a mais adequada abstrao para o reuso.

    ( ) consistem em conjuntos de classes que um usurio instancia para utilizar seus mtodos. Aps a chamada ao

    mtodo, o controle do fluxo da aplicao retorna para o usurio.

    ( ) so aplicaes propriamente ditas, normalmente construdas pela integrao de diversos frameworks.

    4- Considere as afirmativa abaixo sobre o padro Builder: I ) utilizado na instanciao de objetos complexos.

    II) visto como um construtor especializado, que ir executar e avaliar diferentes regras de negcio e demais

    particularidades relacionadas com a criao de um novo objeto. III )A idia atribuir a responsabilidade de

    criao do objeto complexo a outra classe, esta classe ir armazenar todas as configuraes e regras

    necessrias para a instanciao do novo objeto.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas esto todas corretas.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, II, III esto incorretas.

    5- Programadores se deparam muitas vezes com a situao onde preciso acrescentar responsabilidades a

    objetos e no a classe. Uma alternativa atribuir dinamicamente a um dado objeto. Este padro chamado

    de:

    ( ) Bridge.

    ( ) Decorator.

    ( ) Singleton.

    ( ) protype.

    ( ) Instance.

  • 34 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    6- O padro Adpater bastante utilizado para compatibilizar classes implementas por programadores

    diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes

    em uma estrutura hierrquica nica, sem precisar implementar novamente todas as funcionalidades e

    interfaces da classe j existente, considere as afirmativas: I - A ideia criar uma nova classe (Adapter) com a

    interface padro que se deseja para fazer a conexo com a classe j existente (Adaptee) com interface

    diferente da estrutura de classes que se pretende utilizar no sistema. Ii - Alm de reaproveitar totalmente a

    classe antiga sem precisar alterar o cdigo e entender a complexa implementao realizada, mantm a

    uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos sem

    relao de herana.

    ( ) As afirmativas esto todas corretas.

    ( ) As afirmativas II, III esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, III, esto corretas e II errada.

    ( ) As afirmativas I, II, esto corretas e a afirmativa III est errada.

    ( ) As afirmativas I, II, III esto incorretas.

    7- (CESGRANRIO - 2009) Por motivo de segurana, deseja-se adicionar registro (log) das operaes efetuadas

    no sistema de contabilidade de uma empresa. O arquiteto do sistema decide que deve existir somente uma

    instncia de uma classe de registro (log) e que esta ser o ponto de acesso global para os demais

    componentes do sistema.

    Que padro de projeto pode ser utilizado nesse caso?

    ( ) Visitor.

    ( ) Memento.

    ( ) Singleton.

    ( ) Bridge.

    ( ) Iterator.

    8- (CESGRANRIO - 2009) Ao consultar informaes a respeito dos padres de projeto Adapter e Bridge, um

    Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a.

    ( ) O Adapter inferior ao Bridge porque no evita a replicao de cdigo.

    ( ) Ambos promovem a flexibilidade ao fornecer um nvel de endereamento indireto para outro objeto.

    ( ) Ambos so padres estruturais que possuem alguns atributos em comum.

    ( ) O foco do Adapter a soluo de incompatibilidades entre duas interfaces existentes.

    ( ) O Bridge estabelece uma ponte entre uma abstrao e suas possveis implementaes.

    9- considere a definio: Visitor: Representar uma operao a ser realizada nos elementos de uma estrutura de

    objetos. Visitor permite que voc defina uma nova operao sem alterar as classes dos elementos nos quais

    a operao atua (Gamma et al., 2000). Qual das alternativas completamente verdadeira?

    ( ) O padro de projeto acima indicado para ser utilizado quando uma abstrao tem dois aspectos, um

    dependente do outro. Encapsular tais aspectos em objetos separados permite que variem e sejam reusados

    separadamente;

    ( ) O principal objetivo do padro acima conservar as funcionalidades em no se permita adicionar novas, E

    obriga que haja necessidade de alterar sua implementao;

    ( ) O principal objetivo do padro acima permitir que sejam adicionadas novas funcionalidades a classes

    previamente concebidas, sem que haja necessidade de alterar sua implementao.

    ( ) A ideia principal do padro acima implementar diferentes algoritmos em uma hierarquia de classes, onde

    cada um deles pode ser substitudo por outro, independente do cliente que o utiliza.

    ( ) O padro de projeto acima deve ser utilizado no somente quando o comportamento de um objeto

    depende do seu estado, podendo ser alterado em tempo de execuo, mas tambm quando a funcionalidade de

    um objeto possui condicionais grandes.

  • 35 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    10- O padro Variaes protegidas tem como caracterstica:

    ( ) implica que um componente ou classe encapsule somente os atributos e operaes muito relacionadas a si

    e com a classe do componente ou classe propriamente dito.

    ( ) um princpio bsico para fornecer flexibilidade e proteo contra diversos tipos de variaes em um

    projeto orientado a objetos, tais como: variaes nos dados, comportamento, hardware, componentes de

    software, sistemas operacionais, entre outros.

    ( ) Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de

    convenincia que no represente o domnio do problema, algo inventado, para apoiar coeso alta, acoplamento

    baixo e reuso.

    ( ) O objetivo atribuir responsabilidade a um objeto intermedirio para servir como mediador entre outros

    componentes ou servios, para que eles no sejam diretamente acoplados.

    ( ) o primeiro objeto alm da camada de interface com o usurio que responsvel por receber ou tratar

    uma mensagem de operao do sistema.

  • 36 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- Resposta Essa a descrio do padro Singleton. A principal vantagem desse padro termos uma nica

    instncia da classe durante toda a execuo do programa, sendo possvel seu acesso global de forma

    simplificada.

    2- Gabarito O padro Variaes protegidas permite definir uma definir classe artificial com o objetivo

    atribuir responsabilidade a um objeto intermedirio para encapsular este mtodos de forma que eles no

    sejam diretamente acoplados ao sistema.

    3- podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar padres de

    projeto representando-os como colaboraes.

    4- As afirmativas esto todas corretas.

    5- Decorator.

    6- As afirmativas I, II, esto corretas e a afirmativa III est errada.

    7- Singleton.

    8- O Adapter inferior ao Bridge porque no evita a replicao de cdigo.

    9- O principal objetivo do padro acima permitir que sejam adicionadas novas funcionalidades a classes

    previamente concebidas, sem que haja necessidade de alterar sua implementao.

    10- um principio bsico para fornecer flexibilidade e proteo contra diversos tipos de variaes em um

    projeto orientado a objetos, tais como: variaes nos dados, comportamento, hardware, componentes de

    software, sistemas operacionais, entre outros.

  • 37 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto Software

    1- Considerando a classe de projetos GoF assinale a opo cujos padres de projeto esto todos classificados

    como criao:

    ( ) Abstractly factory; Builder; Composite; Protype Singleton.

    ( ) Command; Builder; Factory Method; Protype Singleton.

    ( ) Abstractly factory; Bridge; Factory Method; Protype; Singleton.

    ( ) Abstractly factory; Builder; Factory Method; Decorator Singleton.

    ( ) Abstractly factory; Builder; Factory Method; Protype Singleton.

    2- (FCC - 2011) No contexto dos padres de projeto:

    I. Oferecer uma interface simples para uma coleo de classes.

    II. Desacoplar uma abstrao de sua implementao para que ambas possam variar independentemente.

    Correspondem respectivamente a:

    ( ) Adapter e Faade.

    ( ) Faade e Bridge.

    ( ) Faade e Composite.

    ( ) Bridge e Adapter.

    ( ) Composite e Bridge.

    3- Um dos princpios do padro de arquitetura MVC a separao da lgica da apresentao do modelo.

    PORQUE

    , muitas vezes, mais prtico manter a viso e o controlador unificados, inclusive, por demandas da

    tecnologia.

    Analisando-se as afirmaes acima, conclui-se que ...

    ( ) A primeira afirmao verdadeira, e a segunda falsa.

    ( ) A primeira afirmao falsa, e a segunda verdadeira.

    ( ) As duas afirmaes so falsas.

    ( ) as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.

    ( ) as duas afirmaes so verdadeiras, e a segunda justifica a primeira.

    4- O polimorfismo um princpio GRASP que aumenta o nvel de baixo acoplamento e alta coeso. Apresente

    uma forma de utilizao.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    5- Dentre as alternativas abaixo identifique a que NO define uma situao em que deve ser utilizado o padro

    Factory Method?

    ( ) Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da

    maneira como ele "montado".

    ( ) Quando uma classe quer que suas subclasses especifiquem os objetos criados.

    ( ) Quando classes delegam responsabilidade para uma entre vrias subclasses de apoio.

    ( ) Quando uma classe (o criador) no pode antecipar a classe dos objetos que deve criar.

    ( ) Quando se quer localizar num ponto nico a conhecimento de qual subclasse est sendo usada.

  • 38 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    6- O projeto Orientado a objetos pressupe a criao de modelos de domnio a partir dos requisitos

    identificados para entendimento do negcio e apresentao de uma soluo. A esses modelos so

    acrescidas os aspectos fsicos, como os mtodos e a troca de mensagens entre eles. A questo decidir a

    melhor forma de interao entre os mtodos, ou seja, a atribuio da responsabilidade estabelecida para

    que se possa gerar um melhor resultado.

    Visando facilitar a construo de solues so apresentados os padres de projeto. Assinale dentre as

    alternativas a seguir a que NO define uma caracterstica atribuda ao uso dos padres.

    ( ) apresentado atravs de uma descrio contendo informaes de identificao e registro, como: Nome,

    Problema, Sumrio, Soluo, Conseqncias e Padres Relacionados.

    ( ) uma descrio nomeada de um problema e soluo que pode ser aplicado em novos contextos.

    ( ) So definidos por especialistas de problemas e servem para aplicao direta em qualquer contexto.

    ( ) Fornece orientao de aplicao em circunstncias variveis.

    ( ) O nome do padro utilizado para agrupar ideias em um conceito.

    7- Considerando que o padro tem o objetivo de garantir que existe apenas uma instancia de uma certa classe

    a qualquer instante e em qualquer ponto de um sistema. Indique o padro mencionado e cite uma vantagem

    de sua utilizao.

    Resposta: _________________________________________________________

    _______________________________________________________________

    _______________________________________________________________

    ______________________________________________________________.

    8- Marque a alternativa que est relacionada com o padro GRASP utilizado para conectar a camada de

    interface com o usurio e a camada de negcios da aplicao?

    ( ) Coeso alta.

    ( ) Baixo acoplamento.

    ( ) Polimorfismo.

    ( ) Especialista da informao.

    ( ) Controlador.

    9- Marque a alternativa que est relacionada ao padro GRASP responsvel manter os objetos focados, com

    funcionalidades especficas, inteligveis e gerenciveis?

    ( ) Baixo acoplamento.

    ( ) Especialista da informao.

    ( ) Coeso alta.

    ( ) Criador.

    ( ) Controlador

    10- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelas seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

  • 39 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    ( ) SINGLETON.

    ( ) FACTORY METHOD.

    ( ) MEDIATOR.

    ( ) BUILDER.

    ( ) PROTOTYPE.

    11- Uma da categoria que tradicionalmente se classificam os padres de projeto :Padres Estruturais cujo

    objetivo :

    ( ) Define a forma de organizao dos objetos e sua colaborao mutua.

    ( ) Defende formas de instanciar objetos delegando responsabilidades.

    ( ) Define formas de gerencia e combinar diferentes comportamentos.

    ( ) Define como implantar um novo mtodo em uma classe.

    ( ) Define como implantar o mecanismo de herana em um grupo de objetos.

  • 40 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Gabarito

    1- Abstractly factory ; Builder ; Factory Method ; Protype Singleton.

    2- Faade e Bridge.

    3- as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.

    4- Gabarito Criar mtodos abstratos em classes genricas e herdvel que so referenciados por classes

    relacionadas, caracterizando um acoplamento desta interface.

    5- Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da

    maneira como ele "montado".

    6- So definidos por especialistas de problemas e servem para aplicao direta em qualquer contexto. Fornece

    orientao de aplicao em circunstncias variveis.

    7- Gabarito padro singleton uma vantagem apontada o desempenho de uma aplicao.

    8- Controlador.

    9- Coeso alta.

    10- PROTOTYPE.

    11- Define a forma de organizao dos objetos e sua colaborao mutua.

  • 41 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    Padres de Projeto de Software

    1- (C ESGRANRIO - 2010) Um dos participantes da equipe de desenvolvimento de um framework deve

    implementar uma operao em uma das classes desse framework. Seja X o nome dessa classe. Essa

    operao implementa um algoritmo em particular. Entretanto, h passos desse algoritmo que devem ser

    implementados pelos usurios do framework atravs da definio de uma subclasse de X. Sendo assim, qual

    o padro de projeto do catlogo GoF (Gang of Four) a ser usado pelo desenvolvedor do framework na

    implementao da referida operao, dentre os listados a seguir?

    ( ) Singleton.

    ( ) Decorator.

    ( ) Interpreter.

    ( ) Observer.

    ( ) Template Method.

    2- (FESMIP-BA - 2011) O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes

    quantidades de objetos, de granularidade fina, de maneira eficiente, denominado

    ( ) Builder.

    ( ) Flyweight.

    ( ) State.

    ( ) Composite.

    ( ) Strategy.

    3- Conhecido como padres da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os

    Padres GoF (Group of Four) esto divididos pelos seguintes famlias de padres: Padres de Criao ou de

    Construo, Padres Estruturais e Padres Comportamentais.

    Considerando os padres de Criao ou de Construo, analise o modelo abaixo e em seguida marque a

    alternativa que define a representao.

    ( ) BUILDER.

    ( ) PROTOTYPE.

    ( ) MEDIATOR.

    ( ) SINGLETON.

    ( ) FAC TORY METHOD.

  • 42 Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

    4- considerando a classe de projetos GoF assinale a opo cujos padres de projeto esto todos classificados

    como Estruturais:

    ( ) singleton; bridge; protype; decorator; facade ; flyweight ; Proxy.

    ( ) adapter; bridge; composite; decorator; facade; flyweight; Proxy.

    ( ) adapter; bridge; composite; decorator; facade; flyweight; singleton.

    ( ) singleton; bridge; composite; decorator ; facade; flyweight; Proxy.

    ( ) adapter; bridge; protype decorator; facade; flyweight; singleton.

    5- Podemos afirmar que os Padres de Criao da famlia GoF:

    ( ) Definem caminhos comuns para a organizao de diferentes tipos de objetos, facilitando sua integrao e

    colaborao mtua.

    ( ) Fornecem um guia de como instanciar objetos, que normalmente envolve decises dinmicas para

    escolher, por exemplo, qual classe instanciar ou a quais objetos delegar responsabilidade.

    ( ) So projetados para organizar, gerenciar e combinar diferentes comportamentos.

    ( ) Subutilizam as rotinas de tratamento de erros, em virtude da depurao de cdigo fonte na fase de

    levantamento das necessidades junto aos usurios.

    ( ) Colocam em dvida o tratamento dispensado aos usurios na fase de levantamento das necessidades.

    6- Alm dos benefcios tradicionais relacionados com produtividade, reduo do tempo de desenvolvimento e

    reaproveitamento de solues passadas, a utilizao de padres de projeto pode contribuir ainda nos

    seguintes aspectos I - uma abordagem complementar, auxiliam os analistas e desenvolvedores a melhor

    utilizar as prticas tradicionais de anlise e projeto orientado a objetos, tais como abstrao, encapsula

    mento, herana, polimorfismo, entre outros. II Cada padro descreve um conjunto de problemas e a

    soluo nica no podendo ser alterado III - Auxiliam programadores inexperientes a desenvolverem

    solues mais elegantes, melhor documentadas, padronizadas e reutilizveis. IV - Muitos dos padres de

    projeto desenvolvidos auxiliam no refatoramento da aplicao.

    ( ) As afirmativas I, III, IV esto corretas e a afirmativa II est errada.

    ( ) As afirmativas I, II, III esto corretas e a afirmativa IV est errada.

    ( ) As afirmativas I, II, III, IV esto corretas.

    ( ) As afirmativas II, III, IV esto corretas e a afirmativa I est errada.

    ( ) As afirmativas I, II, IV esto corretas e a afirmativa III est errada.

    7- (FESMIP-BA - 2011) Segundo a classificao de Design Patterns apresentada pela GoF, identifique com V os