Vous êtes sur la page 1sur 80

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?
1
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.
2

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:

3
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.

4
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.
5

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:

6
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:

7
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.

8
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:
(
(
(
(
(
5-

) State.
) Flyweight.
) Composite.
) Builder.
) Strategy.
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.
9

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.

10
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:

11
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.

12
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.
13

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,
14
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.

15
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.

16
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.

17
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.
18
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.

19
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.

20
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.
21
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.

22
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.

23
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.

24
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.

25
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:
26
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.

27
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.

28
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.
29

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, tornandose 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.

30
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.

31
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".

32
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.
33

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.
34
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.

35
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.

36
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.

37
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.

38
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.

39
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.

40
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.

41
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
padres comportamentais e com F, os demais.
( ) Observer.
( ) Iterator.
( ) Faade.
( ) C omposite.
( ) Visitor.
A alternativa que contm a sequncia correta, de cima para baixo, a
(

) V V F F V.

) F V V V F.

) V V V V V.

) V F F V F.

) F F V V V.

8- Considere a figura abaixo

42
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

E escolha a opo correta sobre a gravura:


( ) uma classe de controle exige que sempre se tem h uma classe de apresentao. Desta forma no podemos
ter mais de uma classe de controle por sistema.
( ) A Classe instanciada assinalada como :???? Deveria estar incorporada na classe emprestar para evitar criar
uma serie de novas classes. Isto facilita o projeto.
( ) A C lasse instanciada assinala como :???? de baixo acoplamento e baixa coeso pela natureza de sua
criao.
( ) A C lasse instanciada assinalada como :???? No pode ser decomposta em outros controladores. Assim
temos que trabalhar com o tipo de coeso resultante (temporal, funcional...)
( ) A classe instanciada assinalada como :???? Permite desacoplar as classes e mtodos de apresentao. E isto
aumenta a reutilizao das classes de negcio.
9- O autor Larman (2007) afirma que as responsabilidades esto relacionadas com as obrigaes de um objeto,
sendo divididas em dois tipos. Escolha dos dois tipos corretos nas afirmativas abaixo: I) Fazer: fazer algo
propriamente dito, como criar um objeto ou realizar um clculo. Iniciar uma ao em outros objetos.
Controlar e coordenar atividades em outros objetos. II) Saber: ter conhecimento sobre dados privados
encapsulados. Conhecer objetos relacionados. Ter conhecimento sobre funes que ele pode derivar ou
calcular. III) Calcular: Fazer um clculo especifico ao criar um objeto desde que envolva mtodos que
necessitem de clculo.
(
(
(
(
(

) As afirmativas I e III so responsabilidades definidas pelo autor. e a afirmativa II no foi definida.


) As afirmativas II e III so responsabilidades definidas pelo autor. e a afirmativa I no foi definida.
) Todas as afirmativas so responsabilidades definidas pelo autor.
) Todas as afirmativas no so responsabilidades definidas pelo auto.
) As afirmativas I e II so responsabilidades definidas pelo autor. e a afirmativa III no foi definida.

10- 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.
(
(
(
(
(

) Facade.
) Singleton.
) Factory Method.
) Builder.
) Mediator.
43

Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- Template Method.
2- Flyweight.
3- PROTOTYPE.
4- adapter; bridge; composite; decorator; facade; flyweight; Proxy.
5- 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.
6- As afirmativas I, III, IV esto corretas e a afirmativa II est errada.
7- V V F F V.
8- A classe instanciada assinalada como:???? Permite desacoplar as classes e mtodos de apresentao. E isto
aumenta a reutilizao das classes de negcio.
9- As afirmativas I e II so responsabilidades definidas pelo autor. e a afirmativa III no foi definida.
10- Factory Method.

44
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto de Software


1- 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:

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


dois conceitos.

_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:

3- 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 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 principal objetivo do padro acima conservar as funcionalidades em no se permita adicionar novas, E
obriga 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 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;
4- Sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta:

45
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

( ) Define-se uma estrutura de herana. Automaticamente fica definido uma estrutura de mtodos. Isto
polimorfismo.
( ) Define-se um mtodo na classe PAI. Este mtodo copiado nas classes que herdam a classe PAI. Isto
polimorfismo.
( ) Define-se um mtodo abstrato, em uma classe abstrata. Cada classe que herda a classe abstrata
implementa o mtodo fsico. Dependendo da classe instanciada executado o mtodo correpondente. Isto
polimorfismo.
( ) Define-se um mtodo fsico na classe PAI. Os mtodos nas classes filho so definidos. Neste caso cada
mtodo sobreposto. No caso de uma nova classe filho h necessidade obrigatria devido a estrutura PAI de se
definir o mtodo na nova classe. Isto polimorfismo.
( ) Define-se vrios mtodos. Cada mtodo deve ter uma estrutura IF...THEN...para cada situao. Isto
polimorfismo.
5- O padro Indireo (Indirection) tem como caracterstica:
( ) 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.
( ) 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.
( ) 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.
6- 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:
( ) 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.
( ) 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.
( ) 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.
( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos.
( ) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
7- Marque a alternativa que est relacionada ao padro de projeto que auxiliar a reduzir o impacto de
modificaes em uma aplicao.
(
(
(
(
(

) State.
) Acoplamento fraco.
) Observador.
) Especialista da informao.
) Criador.

8- 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
46
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

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, II, III esto incorretas.


) 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 esto todas corretas.

9- 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, III esto incorretas.
) As afirmativas II, III esto corretas e a afirmativa I est errada.
) As afirmativas I, II, esto corretas e a afirmativa III est errada.

10- 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 hierarquica 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 II, III esto corretas e a afirmativa I est errada.


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

47
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- 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.
2- 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.
3- O principal objetivo do padro acima permitir que sejam adicionadas novas funcionalidades a classes
previamente concebidas, sem que haja necessidade de alterar sua implementao.
4- Define-se um mtodo abstrato, em uma classe abstrata. Cada classe que herda a classe abstrata implementa
o mtodo fsico. Dependendo da classe instanciada executado o mtodo correspondente. Isto
polimorfismo.
5- O objetivo atribuir responsabilidade a um objeto intermedirio para servir como mediador entre outros
componentes ou servios, para que eles no sejam diretamente acoplados.
6- Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
7- Acoplamento fraco.
8- As afirmativas esto todas corretas.
9- As afirmativas esto todas corretas.
10- As afirmativas I, II, esto corretas e a afirmativa III est errada.

48
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto de Software


1- Podemos afirmar que os Padres de Criao da famlia GoF:
( ) 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.
( ) 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.
2(
(
(
(
(

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


) Padres de Processo; Padres de Singularidade; Padres de Prototipao.
) Padres de Criao; Padres Metodolgicos; Padres de Ponte.
) Padres Estruturais; Padres de Processo; Padres de Responsabilidade.
) Padres Comportamentais; Padres de Criao; Padres Estruturais.
) Padres de Proxy; Padres de Criao; Padres de Encadeamento.

3- Podemos afirmar que os Padres Comportamentais da famlia GoF:


( ) So projetados para organizar, gerenciar e combinar diferentes comportamentos
( ) Definem caminhos comuns para a organizao de diferentes tipos de objetos, facilitando sua integrao e
colaborao mtua.
( ) Subutilizam as rotinas de tratamento de erros, em virtude da depurao de cdigo fonte na fase de
levantamento das necessidades junto aos usurios.
( ) 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.
( ) Diminuem a responsabilidade do desenvolvedor em modelar o sistema e adequar as rotinas necessrias
documentao dos processos.
4- (FCC-2011) Os design patterns
( ) 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.
( ) podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar padres
de projeto representando-os como colaboraes.
( ) 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.
5- Consideram as afirmativas 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 II, III esto corretas e a afirmativa I est errada.


) As afirmativas I, II, III esto incorretas.
) As afirmativas esto todas corretas.
) As afirmativas I, II, esto corretas e a afirmativa III est errada.
) As afirmativas I, III, esto corretas e II errada.
49

Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

6- 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 II, III esto corretas e a afirmativa I est errada.
) As afirmativas I, II, III esto incorretas.
) As afirmativas I, II, esto corretas e a afirmativa III est errada.

7- 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 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, II, III esto incorretas.
) As afirmativas I, III, esto corretas e II errada.

8- Sobre padres de projeto escolha a opo incorreta.


( ) 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.
( ) Um padro de projeto define uma estrutura que obrigatoriamente no poder ser alterada pelo
( ) Desenvolvedor a diversidade de padres disponveis bastante grande, pode-se ter, por exemplo, padres
arquiteturais, padres de anlise, padres de projeto e padres de cdigo.
( ) 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.
( ) 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.
9- Uma das categoria que tradicionalmente se classificam os padres de projeto :Padres Comportamentais
cujo objetivo :
(
(
(
(
(

) Defende formas de instanciar objetos delegando responsabilidades.


) Define como implantar um novo mtodo em uma classe.
) Define a forma de organizao dos objetos e sua colaborao mutua.
) Define formas de gerencia e combinar diferentes comportamentos.
) Define como implantar o mecanismo de herana em um grupo de objetos.

50
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

10- 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, II, III esto corretas e a afirmativa IV est errada.


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

51
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- 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.
2- Padres Comportamentais; Padres de Criao; Padres Estruturais.
3- So projetados para organizar, gerenciar e combinar diferentes comportamentos.
4- podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar padres de
projeto representando-os como colaboraes.
5- ...
6- As afirmativas esto todas corretas.
7- As afirmativas esto todas corretas.
8- Um padro de projeto define uma estrutura que obrigatoriamente no poder ser alterada pelo
Desenvolvedor.
9- Define formas de gerencia e combinar diferentes comportamentos.
10- As afirmativas I, III, IV esto corretas e a afirmativa II est errada.

52
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto 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.
(
(
(
(
(

) Apenas a sentena II est correta.


) Apenas as sentenas I e II esto corretas.
) Apenas as sentenas I e III esto corretas.
) Todas as sentenas esto corretas.
) Apenas as sentenas II e III esto corretas.

2- Assinale a afirmativa correta sobre o padro Builder:


( ) uma abordagem que no facilita a criao de objetos com diferentes configuraes e representaes,
tornando o cdigo dependente a complexidade das classes relacionadas
( ) A legibilidade da soluo final, ou seja, para entender como um objeto criado e sob quais condies, fica
comprometida
( ) 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.
( ) 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 embutir no construtor da prpria classe a lgica para criao de um objeto ou ainda distribuir a
lgica de criao em vrios mtodos adicionais.
3- Para fazer a modelagem de um padro de projeto (design pattern) utilizando a UML DESNECESSRIO.
( ) identificar as solues comuns para o problema bsico.
( ) fazer a modelagem do mecanismo como uma colaborao, fornecendo seus aspectos estruturais, assim
como os aspectos comportamentais.
( ) identificar os elementos do padro de projeto que devem ser vinculados aos elementos em um contexto
especfico e represent-los como parmetros para colaborao.
( ) entender o padro de projeto como uma colaborao representada com suas partes estruturais e
comportamentais.
( ) identificar as solues especficas e particulares para o problema bsico e retific-la como um mecanismo.
4- 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 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 II, III esto corretas e a afirmativa I est errada.
) As afirmativas I, II, III esto incorretas.

53
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

5- Na UML, o padro Singleton (GoF) pode ser visto como na classe abaixo:

Sobre o padro de projeto Singleton,


I - o nmero 1 no canto superior da classe pode ser utilizado opcionalmente para indicar que esta classe ter
apenas uma nica instncia.
II - para se implementar o padro Singleton na classe acima, esta dever possuir um mtodo construtor
ServicesFactory() privado.
III - caso uma subclasse estenda a classe ServicesFactory atravs de herana, o mtodo getInstance() dever ser
sobrescrito (override) para construir a subclasse.
IV - o mtodo getInstance() dever ser obrigatoriamente declarado como um mtodo esttico (static).
Assinale a alternativa que indica assertivas CORRETAS:
(
(
(
(
(

) I II III.
) I III IV.
) I II - III IV.
) II III IV.
) I II IV.

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, tornandose 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.
) Standard Patterns, Structural Patterns e Behavioral Patterns.
) Creational Patterns, Structural Patterns e Behavioral Patterns.
) Structural Patterns, Standard Patterns e Creational Patterns.
54

Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

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


( ) Colocam em dvida o tratamento dispensado aos usurios na fase de levantamento das necessidades.
( ) Subutilizam as rotinas de tratamento de erros, em virtude da depurao de cdigo fonte na fase de
levantamento das necessidades junto aos usurios.
( ) 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.
( ) So projetados para organizar, gerenciar e combinar diferentes comportamentos.
8- Considerando a classe de projetos GoF assinale a opo cujos padres de projeto esto todos classificados
como criao:
(
(
(
(
(

) Command ; Builder ; Factory Method ; Protype Singleton.


) Abstractly factory ; Builder ; Composite ; Protype Singleton.
) Abstractly factory ; Builder ; Factory Method ; Protype Singleton.
) Abstractly factory ; Bridge ; Factory Method ; Protype ; Singleton.
) Abstractly factory ; Builder ; Factory Method ; Decorator Singleton.

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.
(
(
(
(
(

) FACADE.
) MEDIATOR.
) BUILDER.
) SINGLETON.
) FACTORY METHOD.

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 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.

55
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- Todas as sentenas esto corretas.
2- 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.
3- Identificar as solues especficas e particulares para o problema bsico e reific-la como um mecanismo.
4- As afirmativas I, II, esto corretas e a afirmativa III est errada.
5- I - II IV.
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- Abstractly factory ; Builder ; Factory Method ; Protype Singleton.
9- BUILDER.
10- Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da
maneira como ele "montado".

56
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto de Software.


1- Podemos afirmar que os Padres Estruturais da famlia GoF:
( ) Aumentam a responsabilidade do programador em depurar o cdigo e as rotinas necessrias
documentao dos processos.
( ) 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.
( ) 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.
2- 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.
( ) Fornece orientao de aplicao em circunstncias variveis.
( ) uma descrio nomeada de um problema e soluo que pode ser aplicado em novos contextos.
( ) O nome do padro utilizado para agrupar ideias em um conceito.
( ) apresentado atravs de uma descrio contendo informaes de identificao e registro, como: Nome,
Problema, Sumrio, Soluo, Consequncias e Padres Relacionados.
( ) So definidos por especialistas de problemas e servem para aplicao direta em qualquer contexto.
3- Analise as sentenas abaixo sobre os grupos de padres da famlia GoF e, em seguida, assinale a alternativa
correta:
I. Os Padres Comportamentais so projetados para organizar, gerenciar e combinar diferentes
comportamentos. Podemos citar os seguintes padres pertencentes a esse grupo: Chain of Responsibility,
Command e Interpreter.
II. Os Padres de C riao fornecem um guia de como instanciar objetos. Esta ao normalmente envolve
decises estticas para escolher, por exemplo, quais objetos instanciar ou a quais classes delegar
responsabilidade. So doze os padres de criao: Adapter, Bridge, Composite, Decorator, Faade,
Flyweight, Proxy, Abstract Factory, Builder, Factory Method, Prototype e Singleton.
III. Os Padres Estruturais definem caminhos comuns para a organizao de diferentes tipos de objetos,
facilitando sua integrao e colaborao mtua.
(
(
(
(
(

) Apenas as sentenas I e III esto corretas.


) Todas as sentenas esto corretas.
) Apenas as sentenas II e III esto corretas.
) Apenas as sentenas I e II esto corretas.
) Apenas a sentena II est correta.

57
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

4- 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:

5- (FC C -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.
( ) 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.
( ) 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.
6- Os padres de projetos, quando aplicados ao desenvolvimento de aplicaes, fornecem meios de descrever
solues comuns para problemas comuns, resultando em reduo de tempo gasto com o desenvolvimento e
melhoria da qualidade da aplicao.
(FC C - 2009) Analise:
I. o responsvel pela especificao dos tipos de objetos a serem criados usando uma "instncia" prototpica
e pela criao de novos objetos copiando este prottipo.
II. Define uma interface de nvel mais alto que torna o subsistema mais fcil de usar e fornece uma interface
nica para um subsistema com diversas interfaces; compe o grupo de padres estruturais.
III. Integrante do grupo de padres comportamentais, ele prov uma forma de acessar sequencialmente os
elementos de um agregado de objetos, sem expor a representao interna desse agregado.
IV. As consequncias do uso deste padro que o encapsulamento mantido, j que objetos usam sua
prpria informao para cumprir responsabilidades; leva ao fraco acoplamento entre objetos e alta
coeso, uma vez que objetos fazem tudo que relacionado sua prpria informao.
As afirmaes correspondem, respectivamente, aos padres:
(
(
(
(
(

) Prototype, Facade, Iterator e Expert.


) Command, Iterator, Singleton e Expert.
) Command, Singleton, Controller e Faade.
) Adapter, Facade, Command e Iterator.
) Controller, Expert, Singleton e Prototype.

7- 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:

58
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

8- Marque a alternativa que est relacionada ao padro de projeto que auxiliar a reduzir o impacto de
modificaes em uma aplicao.
(
(
(
(
(

) Observador.
) State.
) Acoplamento fraco.
) Criador.
) Especialista da informao.

9- 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 afirma 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,
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.
( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos.
( ) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
10- 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, III, esto corretas e II errada.
) As afirmativas I, II, III e IV esto corretas.
) As afirmativas I, II, esto corretas e a afirmativa III est errada.
) As afirmativas I, II, III esto incorretas.

11- Uma das 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 como implantar um novo mtodo em uma classe.
) Define formas de gerencia e combinar diferentes comportamentos.
) Define como implantar o mecanismo de herana em um grupo de objetos.

59
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- Definem caminhos comuns para a organizao de diferentes tipos de objetos, facilitando sua integrao e
colaborao mtua.
2- So definidos por especialistas de problemas e servem para aplicao direta em qualquer contexto.
3- Apenas as sentenas I e III esto corretas.
4- Gabarito padro singleton uma vantagem apontada o desempenho de uma aplicao.
5- podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar padres de
projeto representando-os como colaboraes.
6- Prototype, Faade, Iterator e Expert.
7- 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.
8- Acoplamento fraco.
9- Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
10- As afirmativas II, III esto corretas e a afirmativa I est errada.
11- Define a forma de organizao dos objetos e sua colaborao mutua.

60
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 ...
(
(
(
(
(

) As duas afirmaes so falsas


) as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.
) a primeira afirmao falsa, e a segunda verdadeira.
) as duas afirmaes so verdadeiras, e a segunda justifica a primeira.
) a primeira afirmao verdadeira, e a segunda falsa.

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

) identificar as solues comuns para o problema bsico.

( ) 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 reific-la como um mecanismo.

( ) entender o padro de projeto como uma colaborao representada com suas partes estruturais e
comportamentais.
( ) 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- 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.

(
(
(
(
(

) Singleton.
) Factory Method.
) Facade.
) Builder.
) Mediator.

61
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

4- Uma das categorias 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 como implantar um novo mtodo em uma classe.
) Define formas de gerencia e combinar diferentes comportamentos.
) Define como implantar o mecanismo de herana em um grupo de objetos.

5- 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.
) FACTORY METHOD.
) PROTOTYPE.
) BUILDER.
) SINGLETON.

6- 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,
mas no deve ser usado quando associado a percorrer arrays ou tabelas.
( ) 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
( ) 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.
( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos.
( ) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
7- As principais aplicabilidades do padro command de projeto so:
I) permitir fcil incluso de novos comandos;
II) permitir tratamento de requisies concorrentes, manter histrico de execuo de comandos;
III) suportar operaes para desfazer comandos e;
IV) evitar o acoplamento direto entre classes e servios.
Podemos a firmar com certeza que:
(
(
(
(
(

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


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

8- Decorator tem como principal objetivo a decorao de classes em tempo de execuo, isto , adicionar
novos produtos e/ou novas responsabilidades a objetos dinamicamente sem alterar o cdigo das classes
existentes. Descreva um exemplo que represente esse padro.

_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:

62
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

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


dois conceitos.

_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:

10- Sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta:

( ) Define-se um mtodo fsico na classe PAI. Os mtodos nas classes filho so definidos. Neste caso cada
mtodo sobreposto. No caso de uma nova classe filho h necessidade obrigatria devido a estrutura PAI de se
definir o mtodo na nova classe. Isto polimorfismo.
( ) Define-se vrios mtodos. Cada mtodo deve ter uma estrutura IF...THEN...para cada situao. Isto
polimorfismo.
( ) Define-se uma estrutura de herana. Automaticamente fica definido uma estrutura de mtodos. Isto
polimorfismo
( ) Define-se um mtodo abstrato, em uma classe abstrata. Cada classe que herda a classe abstrata
implementa o mtodo fsico. Dependendo da classe instanciada executado o mtodo correpondente. Isto
polimorfismo.
( ) Define-se um mtodo na classe PAI. Este mtodo copiado nas classes que herdam a classe PAI. Isto
polimorfismo.

63
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.
2- identificar as solues especficas e particulares para o problema bsico e retific-la como um mecanismo.
3- Factory Method.
4- Define a forma de organizao dos objetos e sua colaborao mutua
5- PROTOTYPE.
6- Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
7- As afirmativas I, II, III e IV esto corretas.
8- 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.
9- 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.
10- Define-se um mtodo abstrato, em uma classe abstrata. Cada classe que herda a classe abstrata implementa
o mtodo fsico. Dependendo da classe instanciada executado o mtodo correspondente. Isto
polimorfismo.

64
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto de Software


1- Mediator: Define um objeto que encapsula a forma como um conjunto de objetos interage. Mediator
promove o acoplamento fraco ao evitar que os objetos se refiram explicitamente uns aos outros, permitindo
que voc varie suas interaes independentemente. (Gamma et al., 2000).
Sobre este padro de projetos podemos afirmar com certeza:
( ) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
( ) Considerando objetos que implementem arrays, pode ser visto como uma classe intermediria de
comunicao e gerenciamento, evitando que os objetos se comuniquem de forma direta.
( ) 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.
( ) 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.
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 ...
(
(
(
(
(

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


) as duas afirmaes so verdadeiras, e a segunda no justifica a primeira.
) a primeira afirmao verdadeira, e a segunda falsa.
) a primeira afirmao falsa, e a segunda verdadeira.
) As duas afirmaes so falsas.

3- 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.
( ) entender o padro de projeto como uma colaborao representada com suas partes estruturais e
comportamentais.
( ) identificar as solues especficas e particulares para o problema bsico e reific-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.
4- 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.

65
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

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


alternativa que define a representao.

(
(
(
(
(

) PROTOTYPE.
) MEDIATOR.
) FACTORY METHOD.
) BUILDER.
) SINGLETON.

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 se quer localizar num ponto nico a conhecimento de qual subclasse est sendo usada.
( ) 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.
6- 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:

7- O que fazer para evitar o acoplamento alto e o reuso baixo entre dois ou mais elementos na hora de atribuir
responsabilidades entre eles, segundo o princpio GRASP Indireo?

_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:

8- (FGV - 2009) Os padres de projeto orientados a objeto podem ter finalidade de criao, estrutural ou
comportamental. Os padres de criao se preocupam com o processo de criao de objetos. Os padres
66
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

estruturais lidam com a composio de classes ou de objetos. Os padres comportamentais caracterizam as


maneiras pelas quais classes ou objetos interagem e distribuem responsabilidades. Assinale a alternativa que
apresenta apenas padres de projeto comportamentais.
(
(
(
(
(

) Mediator, Interpreter e Command.


) Proxy, Builder e Mediator.
) Prototype, Abstract Factory e Builder.
) Composite, Decorato e Proxy.
) Singleton, Composite e Interpreter.

9- 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.
( ) 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.
10- (CESGRANRIO - 2008) Ao alterar o estado de uma classe, o desenvolvedor deseja que uma ou mais classes da
interface grfica sejam modificadas. Entretanto, o desenvolvedor no acha interessante criar um
acoplamento forte entre essas classes. Qual padro de projeto comportamental mais adequado para
resolver essa situao?
(
(
(
(
(

) Composite.
) Abstract Factory.
) Adapter.
) Observer.
) Decorator.

67
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos.
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 retific-la como um mecanismo.
4- PROTOTYPE.
5- Quando o algoritmo de criao de um objeto deve ser independente das suas partes constituintes e da
maneira como ele "montado".
6- 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.
7- Gabarito Deve-se atribuir responsabilidade a um objeto intermedirio para mediar entre diversos
componentes ou servios, de maneira que eles no fiquem diretamente acoplados.
8- Mediator, Interpreter e Command.
9- 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.
10- Observer.

68
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto de Software


1- Memento: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). 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,
mas no deve ser usado quando associado a percorrer arrays ou tabelas.
( ) bastante utilizado em programao de sistemas para gerenciar a comunicao entre dois ou mais objetos.
( ) tem como objetivo criar um meio de armazenar informaes sobre um objeto, permitindo acessar essas
informaes tanto para salvar o estado de um objeto especfico, como para recuperar, sempre que for
necessrio.
( ) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
2- (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, tornandose 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.
( ) Structural Patterns, Standard Patterns e Creational Patterns.
( ) Creational Patterns, Structural Patterns e Behavioral Patterns.
( ) Standard Patterns, Structural Patterns e Behavioral Patterns.
( ) Standard Patterns, Creational Patterns e Structural Patterns.
3- 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 objeto salvo a partir dessa classe.
Escolha uma das alternativas abaixo que preenche corretamente a lacuna apresentada na descrio acima.
(
(
(
(
(

) BUILDER.
) FACTORY METHOD.
) FACADE.
) SINGLETON.
) MEDIATOR.

4- (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?
(
(
(
(
(

) Bridge.
) Memento.
) Iterator.
) Singleton.
) Visitor.
69

Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

5- Podemos afirmar que os Padres Estruturais da famlia GoF:


( ) Colocam em dvida o tratamento dispensado aos usurios na fase de levantamento das necessidades.
( ) So projetados para organizar, gerenciar e combinar diferentes comportamentos.
( ) 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.
( ) Aumentam a responsabilidade do programador em depurar o cdigo e as rotinas necessrias
documentao dos processos.
6- considerando a classe de projetos GoF assinale a opo cujos padres de projeto esto todos classificados
como Estruturais:
(
(
(
(
(

) singleton bridge composite decorator faa de flyweight Proxy.


) adapter bridge protype decorator faa de flyweight singleton.
) adapter bridge composite decorator faa de flyweight Proxy.
) singleton bridge protype decorator faa de flyweight Proxy.
) adapter bridge composite decorator faa de flyweight singleton.

7- O que fazer para evitar o acoplamento alto e o reuso baixo entre dois ou mais elementos na hora de atribuir
responsabilidades entre eles, segundo o princpio GRASP Indireo?

_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:

8- (FGV 2009) Os padres de projeto orientados a objeto podem ter finalidade de criao, estrutural ou
comportamental. Os padres de criao se preocupam com o processo de criao de objetos. Os padres
estruturais lidam com a composio de classes ou de objetos. Os padres comportamentais caracterizam as
maneiras pelas quais classes ou objetos interagem e distribuem responsabilidades.
Assinale a alternativa que apresenta apenas padres de projeto comportamentais.
(
(
(
(
(

) Singleton, Composite e Interpreter.


) Prototype, Abstract Factory e Builder.
) Mediator, Interpreter e Command.
) Proxy, Builder e Mediator.
) Composite, Decorato e Proxy.

9- 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:

70
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

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.

(
(
(
(
(

) State.
) Composite.
) Mediator.
) Dynamic behavior.
) Singleton.

71
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- Tem como objetivo criar um meio de armazenar informaes sobre um objeto, permitindo acessar essas
informaes tanto para salvar o estado de um objeto especfico, como para recuperar, sempre que for
necessrio.
2- Creational Patterns, Structural Patterns e Behavioral Patterns.
3- BUILDER.
4- Singleton.
5- Definem caminhos comuns para a organizao de diferentes tipos de objetos, facilitando sua integrao e
colaborao mtua.
6- adapter bridge composite decorator faa de flyweight Proxy
7- Gabarito Deve-se atribuir responsabilidade a um objeto intermedirio para mediar entre diversos
componentes ou servios, de maneira que eles no fiquem diretamente acoplados.
8- Mediator, Interpreter e Command.
9- Gabarito padro singleton uma vantagem apontada o desempenho de uma aplicao.
10- State.

72
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto de Software


1- 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:

2- 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:

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:
( ) esta abordagem que o objeto que est realizando a chamada do mtodo precisa conhecer com detalhes
sobre seu funcionamento.
( ) 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.

( ) 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.
( ) Os mtodos, nesta abordagem devem ser padronizados e hierarquizados de forma que a implementao
trabalhe novos objetos.
4- considere as classes e mtodos abaixo: E escolha a opo correta sobre a gravura: E escolha a opo correta
sobre a gravura:

sobre o acoplamento e coeso:


73
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

( ) O mtodo void imp_NF (cod) poderia ser implementado na classe NF sem envolver mais nenhuma classe.
No tendo outros mdotos o acoplamento no existiria o que o desejvel.
( ) 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.
( ) 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
( ) 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.
( ) 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.
5- 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.
( ) 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.
( ) 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.
( ) 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.
6- Uma das categorias que tradicionalmente se classificam os padres de projeto :Padres Estruturais cujo
objetivo :
(
(
(
(
(

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


) Define formas de gerencia e combinar diferentes comportamentos.
) Defende formas de instanciar objetos delegando responsabilidades.
) Define como implantar um novo mtodo em uma classe.
) Define como implantar o mecanismo de herana em um grupo de objetos.

7- 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, II, III esto incorretas.


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

8- 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.
74
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

(
(
(
(
(

) Mediator
) Builder.
) Facade.
) Singleton.
) Factory Method.

9- O padro de projeto Intepreter descreve como projetar um conjunto de classes para representar e
interpretar uma gramtica para linguagens simples.: I - Sua aplicao recomenda naquelas situaes em
que h necessidade de interpretar uma linguagem qualquer e, ao mesmo tempo, quando se quer
representar sentenas da linguagem, como rvores abstratas sintticas. Ii - importante destacar que o
termo linguagem, na definio desse padro, bastante ampla, no estando restrita apenas a linguagens
de programao Iii - . A estrutura do padro Interpreter sugere uma modelagem realizada atravs de uma
gramtica mapeada em uma arvore hierrquica em que cada cada regra gramatical um nvel na arvore, e
pode ser usada para interpretar as sentenas varrendo toda a rvore e finalizao do problema.
(
(
(
(
(

) 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, III, esto corretas e II errada.
) As afirmativas esto todas corretas.
) As afirmativas I, II, III esto incorretas.

10- (CESGRANRIO - 2008) Ao alterar o estado de uma classe, o desenvolvedor deseja que uma ou mais classes da
interface grfica sejam modificadas. Entretanto, o desenvolvedor no acha interessante criar um
acoplamento forte entre essas classes. Qual padro de projeto comportamental mais adequado para
resolver essa situao?
(
(
(
(
(

) Decorator.
) Abstract Factory.
) Adapter.
) Observer.
) Composite.

75
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- 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.
2- Gabarito: quando se tem uma mesma classe executando muitos trabalhos, realizando muitas coisas no
relacionadas.
3- O objetivo do padro de projeto Command encapsular chamadas de mtodos.
4- 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.
5- 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.
6- Define a forma de organizao dos objetos e sua colaborao mutua.
7- As afirmativas esto todas corretas.
8- Factory Method.
9- As afirmativas I, II, esto corretas e a afirmativa III est errada.
10- Observer.

76
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Padres de Projeto de Software


1- Marque a alternativa que apresenta apenas padres GRASP?
(
(
(
(
(

) Observer, visitor, strategy.


) Controlador, polimorfismo e Memento.
) Coeso alta, polimorfismo, visitor.
) Coeso alta, controlador, strategy.
) Coeso alta, controlador e polimorfismo.

2- (FCC 2011) Os design patterns


( ) 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.
( ) 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.
( ) 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.
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 ...
(
(
(
(
(

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


) a primeira afirmao falsa, e a segunda verdadeira.
) As duas afirmaes so falsas.
) a primeira afirmao verdadeira, e a segunda falsa.
) as duas afirmaes so verdadeiras, e a segunda justifica a primeira.

4- Para fazer a modelagem de um padro de projeto (design pattern) utilizando a UML DESNECESSRIO.
( ) identificar as solues comuns para o problema bsico.
( ) fazer a modelagem do mecanismo como uma colaborao, fornecendo seus aspectos estruturais, assim
como os aspectos comportamentais.
( ) identificar os elementos do padro de projeto que devem ser vinculados aos elementos em um contexto
especfico e representa-los como parmetros para colaborao.
( ) entender o padro de projeto como uma colaborao representada com suas partes estruturais e
comportamentais.
( ) identificar as solues especficas e particulares para o problema bsico e reifica-la como um mecanismo.
5- 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.

77
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

(
(
(
(
(

) Builder.
) Facade.
) Singleton.
) Mediator.
) Factory Method.

6- 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.
) SINGLETON.
) BUILDER.
) FACTORY METHOD.
) MEDIATOR.

7- 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 afirma com
certeza:
( ) 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.
( ) 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.
8- 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:

78
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

9- Utilizar o princpio CRIADOR significa suportar baixo acoplamento, maior clareza, encapsulamento e
reusabilidade.
Em que consiste o princpio CRIADOR?

_________________________________________________________
_________________________________________________________________
_________________________________________________________________
__________________________________________________________.
Resposta:

10- Os padres de projetos, quando aplicados ao desenvolvimento de aplicaes, fornecem meios de descrever
solues comuns para problemas comuns, resultando em reduo de tempo gasto com o desenvolvimento e
melhoria da qualidade da aplicao.
(FCC 2009) Analise:
I. o responsvel pela especificao dos tipos de objetos a serem criados usando uma "instncia" prototpica
e pela criao de novos objetos copiando este prottipo.
II. Define uma interface de nvel mais alto que torna o subsistema mais fcil de usar e fornece uma interface
nica para um subsistema com diversas interfaces compe o grupo de padres estruturais.
III. Integrante do grupo de padres comportamentais, ele prov uma forma de acessar sequencialmente os
elementos de um agregado de objetos, sem expor a representao interna desse agregado.
IV. As consequncias do uso deste padro que o encapsulamento mantido, j que objetos usam sua
prpria informao para cumprir responsabilidades leva ao fraco acoplamento entre objetos e alta
coeso, uma vez que objetos fazem tudo que relacionado sua prpria informao.
As afirmaes correspondem, respectivamente, aos padres:
(
(
(
(
(

) Adapter, Faade, Command e Iterator.


) Command, Iterator, Singleton e Expert.
) Controller, Expert, Singleton e Prototype.
) Command, Singleton, Controller e Faade.
) Prototype, Faade, Iterator e Expert.

79
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Gabarito
1- Coeso alta, controlador e polimorfismo.
2- Podem ser modelados utilizando se a linguagem UML que fornece um meio eficiente de modelar padres de
projeto representando os como colaboraes.
3- a primeira afirmao falsa, e a segunda verdadeira.
4- identificar as solues especficas e particulares para o problema bsico e reific la como um mecanismo.
5- Factory Method.
6- PROTOTYPE.
7- Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de
implementao.
8- Resposta: Numa janela pode haver vrios objetos como barra de rolagem, caixas de texto, etc. possvel
acrescentar mais objetos nessa janela criando por exemplo uma classe JanelaDecorador.
9- Gabarito: Consiste em atribuir responsabilidade de criao. Atribua classe B a responsabilidade de criar
uma instncia de A se:
B agrega objetos de A
B contm objetos de A
B armazena instncias de objetos A
B possui dados de inicializao que sero passados a algum objeto de A.
10- Prototype, Faade, Iterator e Expert.

80
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito

Vous aimerez peut-être aussi