Académique Documents
Professionnel Documents
Culture Documents
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.
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
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.
(
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
) 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.
3- Considerando a classe de projetos GoF assinalem a opo cujos padres de projeto esto todos classificados
como Comportamentais.
(
(
(
(
(
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
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
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
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
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
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
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
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
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
) 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.
(
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
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.
(
(
(
(
(
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.
(
(
(
(
(
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
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:
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:
(
(
(
(
(
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.
(
(
(
(
(
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
) Iterator.
) Command.
) Mediator.
) Builder.
) Memento.
) 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:
(
(
(
(
(
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.
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
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
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.
(
(
(
(
(
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,
(
(
(
(
(
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:
(
(
(
(
(
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
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
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:
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
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.
(
(
(
(
(
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.
(
(
(
(
(
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
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
) Adapter e Faade.
) Faade e Bridge.
) Faade e Composite.
) Bridge e Adapter.
) Composite e Bridge.
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 :
(
(
(
(
(
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
) 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:
(
(
(
(
(
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.
42
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito
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
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
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
Resposta:
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
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.
(
(
(
(
(
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.
(
(
(
(
(
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.
(
(
(
(
(
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
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.
(
(
(
(
(
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.
(
(
(
(
(
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.
(
(
(
(
(
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
53
Exerccios Padres de Projeto de Software Lincoln Kazuhiro Ito
5- Na UML, o padro Singleton (GoF) pode ser visto como na classe abaixo:
) 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,
(
(
(
(
(
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
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:
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:
(
(
(
(
(
11- Uma das categoria que tradicionalmente se classificam os padres de projeto :Padres Estruturais cujo
objetivo :
(
(
(
(
(
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
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 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 :
(
(
(
(
(
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:
(
(
(
(
(
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
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
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
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
(
(
(
(
(
) 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
) 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
) 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
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.
(
(
(
(
(
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
_________________________________________________________
_______________________________________________________________
_______________________________________________________________
______________________________________________________________.
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.
(
( ) 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:
( ) 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 :
(
(
(
(
(
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.
(
(
(
(
(
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
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:
(
(
(
(
(
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