Buscar

Material de Apoio - AV - PADRÕES DE PROJETO DE SOFTWARE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 204 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 204 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 204 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PADRÕES DE PROJETO DE SOFTWARE
Questionário 01
¿Padrões de Software são soluções reutilizáveis para problemas reincidentes que ocorrem durante o desenvolvimento de 
softwares¿ Gamma, E. (2009)
Associe as colunas e marque a alternativa correta:
1.Model, View, Control
2.Padrões Estruturais
3.Padrões Comportamentais
4.Padrões de Criação
5.Padrões GOF
( ) Abstraem o processo de instanciação
( ) Estão divididos em três famílias
( ) Pode diminuir potencialmente o desempenho: a cada camada, as representações dos objetos sofrem modificações, e essas 
modificações levam tempo para serem realizadas
( ) Tratam das associações entre classes e objetos
( ) Tratam das interações e divisões de responsabilidades entre as classes ou objetos
5,1,3,4,2
5,1,3,2,4
4,1,5,3,2
1,5,2,3,4
4,5,1,2,3
4,5,1,2,3
Uma das categoria que tradicionalmente se classificam os padrões de projeto :Padrões 
Estruturais cujo objetivo é:
Define como implantar um novo método em uma classe.
Define a forma de organização dos objetos e sua colaboração mutua
Define como implantar o mecanismo de herança em um grupo de objetos
Defende formas de instanciar objetos delegando responsabilidades
Define formas de gerencia e combinar diferentes comportamentos.
Define a forma de organização dos objetos e sua colaboração mutua
Softwares são sequencias de instruções a serem seguidas ou executadas que solucionam problemas modelados
através de algoritmos com documentação associada. Quando um desenvolver projeta um software ele deseja
criar um programa com um mínimo de qualidade. Com base nesse pressuposto, qual única alternativa abaixo
que um dos requisitos de qualidade esperado não se enquadra para software robusto desenvolvido:
Interpreter (interpretável) , Secure (confiável ) e Stable (estável)
Safe (seguro), Maintenance (manutenção) e Optimized (otimizado)
Maintenance (manutenção), Fault tolerance (tolerante a falhas) e Stable (estável)
Safe (seguro), Secure (confiável ) e Stable (estável)
Maintenance (manutenção), Fault tolerance (tolerante a falhas), Secure (confiável ) e Stable (estável)
Interpreter (interpretável) , Secure (confiável ) e Stable (estável)
considerando a classe de projetos GoF assinale a opção cujos padrões de projeto 
estão todos classificados como criação:
Abstractly factory ; Bridge ; Factory Method ; Protype ; Singleton
Abstractly factory ; Builder ; Factory Method ; Decorator - Singleton
Abstractly factory ; Builder ; Composite ; Protype - Singleton
Command ; Builder ; Factory Method ; Protype - Singleton
Abstractly factory ; Builder ; Factory Method ; Protype - Singleton
Abstractly factory ; Builder ; Factory Method ; Protype - Singleton
Sobre padrões de projeto escolha a opção incorreta.
Cada padrão descreve um problema que ocorrem repetidas vezes em nosso ambiente e fornece o núcleo da solução 
para aquele problema, de tal maneira que se pode usar essa solução milhões de vezes sem nunca fazê-la da mesma 
forma
Os padrões de projeto são descrições de objetos que se comunicam e classes que são customizadas para resolver um 
problema genérico de design em um contexto específico.
Padrões de projeto estão relacionados a diferentes níveis de abstração no desenvolvimento de aplicações orientadas a 
objetos, podendo aparecer ao longo de todo ciclo de análise e projeto de um sistema
a diversidade de padrões disponíveis é bastante grande, pode-se ter, por exemplo, padrões arquiteturais, padrões de 
análise, padrões de projeto e padrões de código.
Um padrão de projeto define uma estrutura que obrigatoriamente não poderá ser alterada pelo desenvolvedor
Um padrão de projeto define uma estrutura que obrigatoriamente não 
poderá ser alterada pelo desenvolvedor
considere a afirmativa de Gamma e Al. citada abaixo e escolha a opção correta: - Em geral, todas as 
arquiteturas orientadas a objeto bem-estruturadas estão cheias de padrões. Uma das maneiras de medir a 
qualidade de um sistema orientado a objetos é avaliar se os colaboradores tomaram bastante cuidado com as 
colaborações comuns entre seus objetos. Focalizar em tais mecanismos durante o desenvolvimento de um 
sistema pode levar a uma arquitetura menor, mais simples, muito mais compreensível do que aquelas 
produzidas quanto padrões são ignorados
Padrões são boas práticas e proporcionam garantia de qualidade na elaboração do código
Padroes sempre levam a uma arquitetura menor principalmente quando se usa tecnologia de objetos
Padrões é uma forma obrigatória de programar com objetos
Padrões são de uso obrigatório e eliminam os erros cometidos na fase programação.
Padrões causam falta de criatividade nos desenvolvedores e esta perda compromete a qualidade
Padrões são boas práticas e proporcionam garantia 
de qualidade na elaboração do código
Em padrão de projeto existe uma situação onde uma classe chama um método abstrato 
especificado em alguma classe abstrata (ou interface) e a subclasse concreta vai decidir 
que tipo exato de objeto criar e retornar.
Baseado nessa descrição marque a alternativa que aponta o padrão relacionado.
Builder.
Singleton.
Mediator
Facade.
Factory Method.
Factory Method.
Relacione os padrões de projetos listados abaixo com suas respectivas finalidades:
PADRÕES DE PROJETO
1. Facade (fachada)
2. Decorator (decorador)
3. Memento (lembrança)
4. Proxy (procurador)
5. Observer (observador)
FINALIDADES
( ) Define uma dependência um para muitos entre objetos tal que, quando o estado de um objeto muda, todos os seus 
dependentes são notificados e atualizados automaticamente.
( ) Fornece uma interface unificada para um conjunto de objetos que constituem um subsistema. Define uma interface de mais 
alto nível que torna o subsistema mais fácil de usar.
( ) Sem violar o encapsulamento, captura e exterioriza o estado interno de um objeto, tal que o objeto possa ser restaurado a
este estado mais tarde.
( ) Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexível para a extensão de 
funcionalidade.
( ) Controla o acesso a um objeto através de outro objeto, que atua como seu substituto, ou como um envoltório. Assinale a 
alternativa que indica a sequência correta, de cima para baixo.
3 - 5 - 1 - 4 - 2
5 - 1 - 3 - 2 - 4
1 - 5 - 3 - 4 - 2
5 - 1 - 3 - 4 - 2
3 - 1 - 5 - 2 - 4
5 - 1 - 3 - 2 - 4
Questionário 02
Conhecido como padrões da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os 
Padrões GoF (Group of Four) estão divididos pelos seguintes famílias de padrões: Padrões de Criação 
ou de Construção, Padrões Estruturais e Padrões Comportamentais.
Considerando os padrões de Criação ou de Construção, analise o modelo abaixo e em seguida 
marque a alternativa que define a representação.
PROTOTYPE.
MEDIATOR.
SINGLETON.
FACTORY METHOD.
BUILDER.
PROTOTYPE.
Assinale a afirmativa correta sobre o padrão Builder:
Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto complexo 
tanto da especificação, quanto das partes que o compõem.
Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a 
lógica de criação em uma hierarquia de herança.
é uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, 
tornando o código dependente a complexidade das classes relacionadas
A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, 
fica comprometida
Deve-se é embutir no construtor da própria classe a lógica para criação de um objeto ou ainda distribuir a 
lógica de criação em vários métodos adicionais.
Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto 
complexo tantoda especificação, quanto das partes que o compõem.
Conhecido como padrões da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os Padrões 
GoF (Group of Four) estão divididos pelos seguintes famílias de padrões: Padrões de Criação ou de Construção, 
Padrões Estruturais e Padrões Comportamentais.
Considerando os padrões de Criação ou de Construção, analise o modelo abaixo e em seguida marque a 
alternativa que define a representação.
FACTORY METHOD.
FACADE.
SINGLETON.
BUILDER.
MEDIATOR.
BUILDER.
(CESGRANRIO - 2009) Por motivo de segurança, deseja-se adicionar registro (log) das 
operações efetuadas no sistema de contabilidade de uma empresa. O arquiteto do sistema 
decide que deve existir somente uma instância de uma classe de registro (log) e que esta 
será o ponto de acesso global para os demais componentes do sistema.
Que padrão de projeto pode ser utilizado nesse caso?
Visitor.
Singleton.
Bridge.
Iterator.
Memento.
Singleton
(CESGRANRIO - 2010) Em um sistema de software para controlar pedidos para entrega em domicílio, deve haver uma 
funcionalidade que permita que o atendente solicite a repetição 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 composição corresponde a produtos normalmente requisitados pelos clientes e solicita ao sistema 
a construção de um novo pedido igual ao selecionado. Esse novo pedido pode, então, ser alterado pelo atendente se o 
cliente solicitar a adição de novos produtos do cardápio, por exemplo. Portanto, a parte principal dessa funcionalidade 
corresponde a criar uma cópia de um pedido a partir de pedido preexistente.
Na implementação dessa funcionalidade, seu desenvolvedor deve utilizar qual padrão de projeto do catálogo GoF (Gang of
Four), dentre os listados abaixo?
Abstract Factory.
Builder.
Factory Method.
Prototype.
Command.
Prototype
Assinale dentre as opções abaixo, qual o padrão de projeto mais conhecidos e 
extensivamente utilizados em programação orientada a objetos e que está 
direcionado para as situações onde é preciso manter uma única instancia de uma 
classe durante toda a execução da aplicação.
Composite;
Prototipe:
Decorator;
Singleton
Builder;
Singleton
Segundo Metsker, o padrão de projeto GoF _________________ é aplicado 
para substituir a geração de instâncias não-inicializadas de uma classe, 
fornecendo novos objetos a partir de uma classe-exemplo.
BUILDER.
PROTOTYPE.
SINGLETON.
MEDIATOR.
FACTORY METHOD.
PROTOTYPE.
Consideram as afirmativa abaixo sobre o padrão protype I - Declara um método chamado clone na 
superclasse abstrata do modelo (Prototype). Em função desta declaração, cada classe concreta 
derivada deve ser capaz de gerar uma nova instância de si próprio. II - , Entre as aplicações para este 
padrão de projeto está a facilidade de instanciar classes em tempo de execução. III Quando as 
instancias de uma classe apresentam poucas combinações de estados, pode ser mais conveniente 
definir previamente um conjunto de protótipos e cloná-los, sempre que foi necessário.
As afirmativas II, III estão corretas e a afirmativa I está errada.
As afirmativas I, II, estão corretas e a afirmativa III está errada.
As afirmativas I, II, III estão incorretas
As afirmativas I, III, estão corretas e II errada
As afirmativas estão todas corretas
As afirmativas estão todas corretasAs afirmativas estão todas corretas
Questionário 03
Programadores se deparam muitas vezes com a situação onde é preciso acrescentar 
responsabilidades a objetos e não a classe. Uma das opções é utilizar herança, entretanto, 
esta alternativa é estática. Outra alternativa é especificar uma nova classe para implementar 
cada responsabilidade que se deseja atribuir dinamicamente a um dado objeto. Esta nova 
classe se chama _____________________________.
Associativa;
Decorator;
Composite;
Adapter;
Beidge;
Decorator;
Dado o diagrama de classe identifique o padrão GoF estrutual
Flyweight
Decorator
Bridge
Composite
Adapter
Adapter
Os Padrões de Projeto (GOF) que se apresentam com o formato de uma Lista 
Encadeada (estrutura de dados) quando são representados por um Diagrama de 
Objetos (UML) e se classificam, respectivamente, como Padrão de Projeto Estrutural e 
Padrão de Projeto Comportamental, são conhecidos como:
Observer e Decorator
Decorator e Observer
Observer e Chain of Responsibility
Chain of Responsibility e Decorator
Decorator e Chain of Responsibility
Decorator e Chain of Responsibility
Observe a figura abaixo e escolha dentre as opções o padrão GOF para resolver o problema com 
a estrutura apresentada.
Composite
Proxy
GOF
Grasp
Singleton
Composite
Dentre as opções apresentadas assinale qual o padrão é bastante utilizado para 
compatibilizar classes implementas por programadores diferentes, ou desenvolvidas 
em momentos diferentes, ou ainda para unir classes com interfaces diferentes em uma 
estrutura hierárquica única, sem precisar implementar novamente todas as 
funcionalidades e interfaces da classe já existente.
Padrão Decorator
Padrão Adapter
Padrão Flyweight
Padrão Composite
Padrão Decorator
Padrão Adapter
Assinale a alternativa correspondente ao padrão de projeto utilizado para adicionar 
responsabilidades dinâmicas a objetos.
Composite
Façade
Adapter
Bridge
Decorator
Decorator
O Padrão de Projeto Estrutural (GOF) que se apresenta com o formato de uma árvore 
(estrutura de dados) quando é representado por um Diagrama de Objetos (UML) 
chama-se:
Bridge
Composite
TreeView
Decorator
Memento
Composite
Um compositor musical deseja criar uma hierarquia de classes para representar a 
estrutura das suas notas musicais. Em primeiro lugar, definiu uma classe abstrata 
chamada Melodia, a seguir, criou duas classes derivadas, uma chamada Nota e outra 
chamada Partitura. Cada Nota musical representa o elemento mínimo de uma Melodia 
e cada Partitura é formada por uma ou mais notas. Marque a alternativa que 
representa o melhor padrão de projeto para modelar este problema.
Proxy
Adapter
Bridge
Façade
Composite
Composite
Questionário 04
Que padrão estrutural provê um ponto de atendimento para que outro objeto possa controlar 
o acesso ao primeiro:
Flyweight
Proxy
Facade
Adapter
Decorator
Proxy
considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão todos 
classificados como Estruturais:
singleton; bridge ; protype; decorator ; faça de ; flyweight ; Proxy
adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; Proxy
adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; singleton
adapter ; bridge ; protype ¿ decorator ; faça de ; flyweight ; singleton
singleton; bridge ; composite; decorator ; faça de ; flyweight;¿ Proxy
adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; Proxy
O objetivo do padrão de projeto estrutural de oFlyweight é diminuir o consumo de memória, 
porém deve ser utilizado com cautela; Gamma et al (2000) recomendam sua utilização somente 
quando todas as condições forem verdadeiras. Assinale dentre as opções abaixo a unica
condição que não é verdadeira
Os custos de armazenamento são altos por causa da grande quantidade de objetos.
Uma aplicação utiliza um pequeno número de objetos.
A aplicação não depende da identidade do objeto.
Uma aplicação utiliza um grandenúmero de objetos.
Muitos grupos de objetos podem ser substituídos por relativamente poucos objetos 
compartilhados, uma vez que estados extrínsecos são removidos.
Uma aplicação utiliza um pequeno número de objetos.
(BNDES - CESGRANRIO 2009) O presidente de uma empresa determinou que fosse 
disponibilizado um sistema de vendas na Internet. No entanto, o software de controle de estoque 
que deve ser acessado pela aplicação de vendas é muito antigo e provê uma API (Application
Programming Interface) de uso muito complicado. Para que os desenvolvedores possam acessar 
uma interface mais simples, o arquiteto do sistema pode determinar o uso do padrão de projeto
Prototype.
Flyweight.
Decorator.
Observer.
Façade.
Façade
Que padrão estrutural usa compartilhamento para suportar um grande número de pequenos objetos 
de forma eficiente.
Facade
Flyweight
Bridge
Decorator
Composite
Flyweight
Estruturar um sistema em subsistemas ajuda a reduzir a complexidade do problema (Gamma et 
al., 2000). No entanto, um objetivo comum de todos os projetos é minimizar a comunicação e as 
dependências entre os diferentes subsistemas. Uma das maneiras de contornar esse problema é 
utilizar o padrão de projeto que qual forneça uma interface única e simplificada para os recursos e 
facilidades mais gerais de um subsistema. Este padrão de projeto é conhecido como:
Flyweight
Proxy;
Façade;
Decorator
Composite;
Façade;
(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
Composite.
Builder.
Strategy.
State.
Flyweight.
Flyweight
(FCC - 2011) No contexto dos padrões de projeto:
I. Oferecer uma interface simples para uma coleção de classes.
II. Desacoplar uma abstração de sua implementação para que ambas possam variar 
independentemente.
Correspondem respectivamente a
Bridge e Adapter.
Façade e Bridge.
Adapter e Façade.
Façade e Composite.
Composite e Bridge.
Façade e Bridge.
Questionário 05
Entre as vantagens do padrão Interpreter podem-se citar: I - facilidade para mudar e estender a 
gramática, pois, o padrão utiliza classes para representar as regras gramaticais. I i - Pode-se usar 
herança para mudar ou estender a gramática, assim como expressões existentes podem ser 
modificadas incrementalmente e novas expressões podem ser criadas a partir das existentes; Iii - a 
implementação da gramática é mais fácil, pois, classes que definem os nós folhas da árvore tem 
implementações similares. Por outro lado, uma das desvantagens é que o padrão Interpreter define, 
ao menos, uma classe para cada regra da gramática, logo, gramáticas com muitas regras são 
difíceis de manter e administrar.
As afirmativas I, III, estão corretas e II errada
As afirmativas estão todas corretas
As afirmativas I, II, III estão incorretas
As afirmativas I, II, estão corretas e a afirmativa III está errada.
As afirmativas II, III estão corretas e a afirmativa I está errada.
As afirmativas estão todas corretas
Para fazer a modelagem de um padrão de projeto (design pattern) utilizando a UML é 
DESNECESSÁRIO.
identificar os elementos do padrão de projeto que devem ser vinculados aos elementos 
em um contexto específico e representá-los como parâmetros para colaboração.
identificar as soluções comuns para o problema básico.
identificar as soluções específicas e particulares para o problema básico e reificá-la como 
um mecanismo.
fazer a modelagem do mecanismo como uma colaboração, fornecendo seus aspectos 
estruturais, assim como os aspectos comportamentais.
entender o padrão de projeto como uma colaboração representada com suas partes 
estruturais e comportamentais.
identificar as soluções específicas e particulares para 
o problema básico e reificá-la como um mecanismo.
(CESGRANRIO - 2010) Um dos participantes da equipe de desenvolvimento de um 
framework deve implementar uma operação em uma das classes desse framework. 
Seja X o nome dessa classe. Essa operação implementa um algoritmo em particular. 
Entretanto, há passos desse algoritmo que devem ser implementados pelos usuários 
do framework através da definição de uma subclasse de X. Sendo assim, qual o 
padrão de projeto do catálogo GoF (Gang of Four) a ser usado pelo desenvolvedor do 
framework na implementação da referida operação, dentre os listados a seguir?
Observer.
Template Method.
Decorator.
Singleton.
Interpreter.
Template Method.
Analise as sentenças abaixo.
I - A estrutura do padrão interpreter sugere que a modelagem do problema seja realizada através de uma 
gramática procedural.
II - O padrão Interpreter tem como desvantagem definir uma classe para cada gramática, pois quando se tem 
muitas gramáticas, são difíceis de manter e administrar.
III - No padrão de projeto Template Method as partes que podem variar, conforme a situação, contexto ou 
problema a ser resolvido, são redefinas nas classes derivadas (concretas).
IV - O padrão de projeto Template Method sugere a implementação de um algoritmo fixo em uma superclasse 
abstrata onde se consegue alterar o comportamento do algoritmo, sem modificar sua estrutura lógica.
Marque a opção correta.
I - III - IV
III - IV
I - II - III
I - II - IV
II - III - IV
II - III - IV
Analise as seguintes sentenças que descreve as características de um padrão de projeto. Em seguida marque a 
alternativa que corresponde o padrão de projeto correspondente.
a. Sua aplicação é recomendada naquelas situações em que há necessidade de interpretar uma linguagem 
qualquer e, ao mesmo tempo, quando se quer representar sentenças da linguagem, como árvores abstratas 
sintáticas.
b. Descreve como projetar um conjunto de classes para representar e interpretar uma gramática para 
linguagens simples.
c. A estrutura do padrão sugere que a modelagem do problema seja realizada através de uma gramática 
recursiva.
Chain Responsability
Interpreter
Façade
Adapter
Composite
Interpreter
Baseando-se nas necessidades apresentadas do lado direito do quadro abaixo, relacione-as ao 
padrão adequado a utilização e, em seguida marque a alternativa que corresponde a sequencia 
numerada correspondente.
4 - 1 - 2 - 3
4 - 2 - 1 - 3
4 - 3 - 1 - 2
2 - 3 - 4 - 1
3 - 4 - 1 - 2
4 - 3 - 1 - 2
A classe Handler é uma classe abstrata, portanto, não pode ser 
instanciada diretamente. Assim, para montar uma cadeia de 
objetos é necessário especializá-la em que tipo de classes? Assinale 
dentre as opções abaixo aquela que está correta.
Generalizada;
baixa coesão.
alto acoplamento;
concretas;
com método púbico;
concretas;
O método Arrays.sort (java.util) recebe como parâmetro um objeto do tipo 
Comparator que implementa um método compare(a, b) e utiliza-o para definir as 
regras de ordenação, assim evitamos duplicidade de código permitindo sobrescrita 
apenas do critério de comparação do algoritmo de ordenação, no qual os outros 
passos permanecem invariantes. Essa situação exemplifica qual dos padrões GOF 
abaixo:
Command
Builder
Flyweight
Template Method
State
Template Method
Questionário 06
A definição ¿ Captar e externalizar um estado interno de um objeto, de maneira que 
esse estado seja restaurado ao objeto em outro momento, sem violar seu 
encapsulamento (Gamma et al., 2000).¿ Refre-se a que padrão de projeto:
Memento
Builder.
Iterator
Mediator
Command
Memento
Existe um padrão de projeto que é bastante utilizado em programação de sistema para 
gerenciar a comunicação entre dois ou mais objetos. Ele pode ser visto como uma classe 
intermediária de comunicaçãoe gerenciamento, evitando que os objetos se comuniquem 
de forma direta. Dentre as opções abaixo assinale aquela que está correta para a 
colocação acima.
Padrão Mediator;
Padrão Interator;
Command;
Padrão Memento
Padrão Proxy;
Padrão Mediator;
O problema de acessar elementos de coleções, matrizes ou estruturas de dados 
encadeados é bastante recorrente em programação. Assinale dentre as alternativas 
abaixo,aquela que oferece uma forma de percorrer este tipo de objeto agregado, sem 
conhecer seus detalhes de implementação.
Padrão Mediator;
Padrão Proxy;
Padrão Memento;
Padrão Visitor;
Padrão Iterator;
Padrão Iterator;
A implementação do padrão Memento é bastante simples. Normalmente é criada uma classe privada chamada 
Memento (ou outro nome com funcionalidades similar) dentro da classe que se pretende salvar o estado. A 
classe Memento deve ser instanciada com os atributos que se pretende salvar, fornecendo para tanto -----------
------------- Marque dentre as opções abaixo aquela que complementa a lacuna acima de forma correta.
um construtor público para este fim.
um construtor privado para este fim.
Uma classe com método publico para este fim;
Utilizar uma classe associativa para o fim desejado.
Utilizar um outro padrão comportamental que complemente o objetivo.
um construtor público para este fim.
(UNEAL - COPEVE 2010) Definir um objeto que encapsula a forma como um conjunto 
de objetos interage. Promove o acoplamento fraco ao evitar que os objetos se refiram 
uns aos outros explicitamente. Qual opção abaixo corresponde à descrição anterior?
Intenção do padrão de projeto strategy
Intenção do padrão de projeto proxy
Intenção do padrão de projeto composite
Intenção do padrão de projeto mediator
Intenção do padrão de projeto command
Intenção do padrão de projeto mediator
Command : Encapsula uma solicitação como um objeto, permitindo a parametrização de clientes 
com diferentes solicitações, o enfileiramento e o registro de solicitações e o suporte a operações 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 método precisa conhecer 
com detalhes sobre seu funcionamento.
Este padrão de projeto oferece pouca flexibilidade na arquitetura do sistema, uma vez que não 
permite adição de novas funcionalidades
O objetivo do padrão de projeto Command é encapsular chamadas de métodos.
Os métodos, nesta abordagem devem ser padronizados e hierarquizados de forma que a 
implementação trabalhe novos objetos.
Nesta abordagem o objeto que está realizando a chamada do método precisa conhecer com 
detalhes a implementação em relação asparente ao local, tempo e ao objeto que vai realizar 
uma determinada tarefa
O objetivo do padrão de projeto Command é encapsular chamadas de métodos.
Assinale dentre as opções abaixo aquela que corresponde ao objetivo do padrão de projeto 
Command.
.encapsular chamadas de métodos.
disponibilizar chamadas de métodos.
encapsular chamadas dos objetos;
disponibilizar o acesso aos aobjetos
Disponibilizar o uso do método private.
.encapsular chamadas de métodos.
Memento:Captar e externalizar um estado interno de um objeto, de maneira que esse estado seja restaurado ao objeto em 
outro momento, sem violar seu encapsulamento (Gamma et al., 2000). Sobre este padrão de projetos podemos afirma com 
certeza:
É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos, mas não 
deve ser usado quando associado a percorrer arrays ou tabelas.
tem como objetivo criar um meio de armazenar informações sobre um objeto, permitindo acessar essas informações 
tanto para salvar o estado de um objeto específico, como para recuperar, sempre que for necessário.
É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos
Considerando objetos que implementam arrays, pode ser visto como uma classe intermediária de comunicação e 
gerenciamento, evitando que os objetos se comuniquem de forma direta
Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de implementação
tem como objetivo criar um meio de armazenar informações sobre um objeto, permitindo 
acessar essas informações tanto para salvar o estado de um objeto específico, como para 
recuperar, sempre que for necessário.
Questionário 07
Marque a alternativa que está relacionada com o padrão de projeto que pode ser 
utilizado para configurar uma classe com um dentre muitos comportamentos 
disponíveis.
Strategy
Observer
State
Memento
Visitor
Strategy
O principal objetivo do Padrão Visitor é:
Criar um acoplamento forte entre os objetos, tendo em vista que um objeto deve ser 
capaz de avisar outros fazendo suposições sobre quem são os objetos.
Criar uma maneira de separar um algoritmo genérico da estrutura de um objeto.
Quando uma abstração tem dois aspectos, um independente do outro, de impedir o 
encapsulamento de tais aspectos em objetos separados.
Permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas, 
sem que haja necessidade de alterar sua implementação.
Fornecer um guia de como instanciar objetos e classes.
Permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas, sem 
que haja necessidade de alterar sua implementação.
Identifique dentre as opções abaixo, aquela que representa o padrão de projeto 
comportamental , cuja ideia principal é implementar diferentes algoritmos em uma hierarquia 
de classes, onde cada um deles pode ser substituído pelo outro, independente do cliente que o 
utiliza .
Strategy
Proxi;
Decorator;
Visitor;
State;
Strategy
(COPEVE-UFAL - 2011) O diagrama de classes apresentado na figura não representa fielmente um buffer que passa por estados 
sucessivos de transformação. Em outras palavras, um buffer, que está inicialmente vazio, depois pode ficar parcialmente cheio e,
possivelmente, pode ficar cheio.
Dentre as opções apresentadas a seguir, qual o padrão de projetos que melhor se adequaria para modelar essa característica 
dinâmica do buffer?
Mediator.
Dynamic behavior.
Singleton.
Composite.
State.
State
considere a definição: Visitor: Representar uma operação a ser realizada nos elementos de uma estrutura de 
objetos. Visitor permite que você defina uma nova operação sem alterar as classes dos elementos nos quais a 
operação atua (Gamma et al., 2000). Qual das alternativas é completamente verdadeira?
A idéia principal do padrão acima é implementar diferentes algoritmos em uma hierarquia de classes, 
onde cada um deles pode ser substituído por outro, independente do cliente que o utiliza.
O principal objetivo do padrão acima é permitir que sejam adicionadas novas funcionalidades a classes 
previamente concebidas, sem que haja necessidade de alterar sua implementação.
O principal objetivo do padrão acima é conservar as funcionalidades em não se permita adicionar novas, 
E obriga que haja necessidade de alterar sua implementação
O padrão de projeto acima é indicado para ser utilizado quando uma abstração tem dois aspectos, um 
dependente do outro. Encapsular tais aspectos em objetos separados permite que variem e sejam 
reusados separadamente;
O padrão de projeto acima deve ser utilizado não somente quando o comportamento de um objeto 
depende do seu estado, podendo ser alterado em tempo de execução, mas também quando a 
funcionalidade de um objeto possui condicionais grandes.
O principal objetivo do padrão acima é permitir que sejam adicionadas novas funcionalidades a 
classes previamente concebidas, sem que haja necessidade de alterar sua implementação.O padrão de projeto que deve ser utilizado não somente quando o 
comportamento de um objeto depende do seu estado, podendo ser 
alterado em tempo de execução, mas também quando a funcionalidade 
de um objeto possui condicionais grandes, chama-se:
Proxy;
Strategy;
Visitor ;
Interpreter;
State;
State
Marque a alternativa que está relacionada com o padrão de projeto que permite 
definir uma nova operação sem mudar as classes dos elementos sobre os quais 
opera.
Observer
Strategy
Visitor
Memento
State
Visitor
Marque a alternativa que está relacionada ao padrão de projeto que é mais apropriado 
quando o comportamento de um objeto depende do seu estado e ele pode mudar seu 
comportamento em tempo de execução.
Memento
Strategy
Observer
State
Visitor
State
Questionário 08
Uma classe com acoplamento forte depende muito de outras classes. Isso pode conduzir os seguintes problemas num 
sistema:
I. As classes são difíceis de aproveitar tendo em vista que sempre que uma classe for utilizada todas as outras das quais 
ela depende devem estar presentes;
II. As alterações nas classes relacionadas podem forçar mudanças locais difíceis de compreender isoladamente.
III. Facilidade na compreensão nas mudanças das classes no sistema.
IV. Ao fazer alguma mudança numa classe também devem ser feitas mudanças nas outras que estão ligadas a esta 
classe.
Com base nestas informações assinale a alternativa CORRETA.
II, III, IV
I, II, IV
I, III, IV
Somente a III.
I, II, III
I, II, IV
Marque a alternativa que está relacionada ao padrão de projeto que é auxiliar a reduzir 
o impacto de modificações em uma aplicação.
State
Criador
Especialista da informação
Observador
Acoplamento fraco
Acoplamento fraco
Pode-se sucintamente definir o padrão Variation do GRASP como:
Criar classes altamente coesas.
Criar classes que permitam sobrecarga e sobreescrita.
Criar camadas para melhor organizar a aplicação.
Criar classe que resolva problemas de inconsistência, criando adaptações para 
saná-las.
Criar classes controladoras.
Criar classe que resolva problemas de inconsistência, criando adaptações para saná-las.
qual das afirmativas abaixo não é verdadeira.
O ideal que dois artefatos tenham alta dependência. Isto garante um bom desempenho e facilita a 
manutenção dos artefatos.
Um alto acoplamento aumenta a dificuldade de entendimento da solução proposta, a diminuição das 
chances de reutilização, além de aumentar a complexidade da aplicação.
acoplamento é o grau de dependência entre dois artefatos. É uma medida de quão forte um elemento 
está conectado ou tem conhecimento de, ou depende de outros elementos.
Dessa forma o padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o 
acoplamento permaneça baixo.
Um acoplamento definido para que classes que contenham métodos que possibilitem alterações de 
requisitos deve ser a menor possível, desta forma se favorece futuras manutenções.
O ideal que dois artefatos tenham alta dependência. Isto garante um bom desempenho e 
facilita a manutenção dos artefatos.
Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que:
Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui.
Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui.
Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui.
Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui.
Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Engenheiro tem 
a responsabilidade de saber quantas Etapas uma determinada Obra possui.
Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. 
Padrão Especialista: a Classe Obra tem a responsabilidade de saber quantas Etapas uma 
determinada Obra possui.
Os 9 padrões definidos pela General Responsability Assignment Software Pattener são?
1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 
7.Pure Fabrication; 8.Indirection; e 9.Variation.
1.Creator; 2.Decoretor; 3.FlyWeight; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure 
Fabrication; 8.Indirection; e 9.Variation.
1.Singleton; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information 
Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation.
1.Creator; 2.High Coesion; 3.Low Coupling; 4.Buider; 5.Bridge; 6.Information Expert; 7.Pure 
Fabrication; 8.Indirection; e 9.Variation.
1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 
7.Pure Fabrication; 8.Indirection; e 9.Facade.
1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information 
Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation.
Questionário 09
Marque a alternativa que está relacionada com o padrão GRASP utilizado para conectar a 
camada de interface com o usuário e a camada de negócios da aplicação?
Polimorfismo
Especialista da informação
Baixo acoplamento
Coesão alta
Controlador
Controlador
Marque a alternativa que apresenta apenas padrões GRASP?
Coesão alta, polimorfismo, visitor
Observer, visitor, strategy
Coesão alta, controlador e polimorfismo
Controlador, polimorfismo e Memento
Coesão alta, controlador, strategy
Coesão alta, controlador e polimorfismo
(CESPE - 2010 - INMETRO) A coesão e o acoplamento são formas de se avaliar se a segmentação de um sistema em módulos 
ou em componentes foi eficiente.
Acerca da aplicação desses princípios, assinale a opção correta.
A modularização do programa em partes especializadas pode aumentar a qualidade desses componentes, mas pode 
prejudicar o seu reaproveitamento em outros programas.
Um benefício da alta coesão é permitir realizar a manutenção em um módulo sem se preocupar com os detalhes 
internos dos demais módulos.
O baixo acoplamento pode melhorar a manutebilidade dos sistemas, pois ele está associado à criação de módulos como 
se fossem caixas-pretas.
Os componentes ou os módulos devem ser fortemente coesos e fracamente acoplados.
Os componentes ou os módulos devem apresentar baixa coesão e um alto grau de acoplamento.
Os componentes ou os módulos devem ser 
fortemente coesos e fracamente acoplados.
Num determinado setor de uma empresa fictícia existem 5 (cinco) funcionários contratados. Todos os 
funcionários são contratados com a mesma carga horária de trabalho prevista. Dois dos cinco funcionários 
produzem o triplo do que produzem os outros colegas de trabalho, pois além de concluir as tarefas diárias de 
sua própria responsabilidade, também executam as tarefas que não são concluídas pelos outros colegas. Ao 
final do expediente é possível observar que os dois funcionários que mais trabalham apresentam maior 
desgaste físico e mental, pois sempre ficam sobrecarregados com responsabilidades extras. Fazendo uma 
analogia com o cenário descrito acima, responda qual característica de Projeto O.O. explicaria a situação que 
ocorre quando uma má distribuição de responsabilidades entre 5 classes afeta a colaboração entre os objetos, 
concentrandoresponsabilidades demais em somente 2 dessas classes.
Elevado Acoplamento
Baixo Encapsulamento
Elevada Herança
Baixa Coesão
Elevado Polimorfismo
Baixa Coesão
O tipo tipos de coesão caracterizada quando um módulo executa um e 
somente um cálculo, e então retorna o resultado é chamada de:
Recursiva.
Funcional;
Paralela;
Comucacional
Em Camada;
Funcional;
São causas comuns de refactoring, exceto:
Forte coesão
Forte acoplamento
Dependência em operações específicas
Criação de objetos especificando diretamente uma classe concreta
Dependências de algoritmo
Forte coesão
Um padrão controlador é o primeiro objeto além da camada de interface com o usuário 
que é responsável por receber ou tratar uma mensagem de operação do sistema, Este é 
um padrão de projeto de delegação, pois, normalmente um controlador deve delegar a 
outros objetos o serviço que precisa ser feito. Dentre os conceitos abaixo, assinale aquele 
que complementa o objtivo deste padrão.
ele coordena ou controla as generalizações;
ele coordena ou controla a recursividade;
ele coordena ou controla as classes;
ele coordena ou controla a atividade;
ele controla ou coordena os métodos;
ele coordena ou controla a atividade;
O Paradigma Orientado a Objetos com os padrões de responsabilidades GRASP definem que a 
melhor técnica de programação POO é:
Desenvolver as classes com a maior coesão e menor acoplamento possível.
Desenvolver as classes com a menor coesão e menor acoplamento possível.
Desenvolver as classes com a maior coesão e maior acoplamento possível.
Desenvolver as classes sem coesão e com acoplamento.
Desenvolver as classes com a menor coesão e maior acoplamento possível.
Desenvolver as classes com a maior coesão e menor 
acoplamento possível.
Questionário 10
O padrão Variações protegidas tem como característica:
é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar 
uma mensagem de operação do sistema.
Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de 
conveniência que não represente o domínio do problema, algo inventado, para apoiar coesão alta, 
acoplamento baixo e reuso.
implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a 
si e com a classe do componente ou classe propriamente dito.
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros 
componentes ou serviços, para que eles não sejam diretamente acoplados.
É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um 
projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de 
software, sistemas operacionais, entre outros.
É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações 
em um projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, 
componentes de software, sistemas operacionais, entre outros.
Dentre as opções abaixo assinale aquela que não se constitui em um benefícios da 
aplicação do padrão variações protegidas.
o impacto ou custo das modificações pode ser diminuído.
as extensões para novas variações são difiíceis de adicionar,
o acoplamento fica mais baixo;
novas implementações são introduzidas sem afetar o cliente,
as extensões para novas variações são fáceis de adicionar,
as extensões para novas variações são difiíceis de adicionar,
O padrão Invenção Pura tem como característica:
implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si 
e com a classe do componente ou classe propriamente dito.
É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um 
projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de 
software, sistemas operacionais, entre outros.
Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de 
conveniência que não represente o domínio do problema, algo inventado, para apoiar coesão alta, 
acoplamento baixo e reuso.
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros 
componentes ou serviços, para que eles não sejam diretamente acoplados.
é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar 
uma mensagem de operação do sistema.
Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou 
de conveniência que não represente o domínio do problema, algo inventado, para apoiar 
coesão alta, acoplamento baixo e reuso.
O padrão de projeto variações protegidas é um princípio básico para fornecer 
_____________e _____________ flexibilidade e proteção contra diversos tipos de 
variações em um projeto orientado a objetos, Complete as lacunas com a opção 
correta.
flexibilidade e acoplamento;
proteção e visibilidade;
flexibilidade, proteção e visibilidade.
proteção e coesão;
flexibilidade e proteção;
flexibilidade e proteção;
Dentre as opções abaixo, assinale aquela que sugere onde uma aplicação do padrão 
de projeto Invenção Pura deve criar uma nova classe específica para salvar objetos.
em um banco de dados integrado;
em um banco de dados ordenado;
em em um banco de dados relacional.
em um banco de dados homogêneo;
em em um banco de dados hierárquico;
em em um banco de dados relacional.
O objetivo do padrão de projeto Indireção é atribuir responsabilidade a um objeto intermediário 
para servir como mediador entre outros componentes ou serviços, com o objetivo de?
impedir que que eles não sejam diretamente excluídos;
impedir que que eles não sejam diretamente acoplados;
permitir que que eles sejam diretamente acoplados;
impedir que que eles sejam parcialmente acoplados
impedir que que eles sejam indiretamente acoplados;
impedir que que eles não sejam diretamente acoplados;
Marque a alternativa que representa o padrão GRASP que está 
relacionada com a seguinte questão: como projetar objetos e 
subsistemas de modo que variações não causem impactos indesejados?
Indireção
Variações Protegidas
Controlador
Polimorfismo
Invenção Pura
Variações Protegidas
O padrão Indireção tem como característica:
implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a 
si e com a classe do componente ou classe propriamente dito.
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros 
componentes ou serviços, para que eles não sejam diretamente acoplados.
Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de 
conveniência que não represente o domínio do problema, algo inventado, para apoiar coesão alta, 
acoplamento baixo e reuso.
É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um 
projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de 
software, sistemas operacionais, entre outros.
é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar 
uma mensagem de operação do sistema.
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador 
entre outros componentes ou serviços, para que eles não sejam diretamente acoplados.
Simulado 01
Sobre padrões de projeto escolha a opção incorreta.
Padrões de projeto estão relacionados a diferentes níveis de abstração no desenvolvimento de aplicações 
orientadas a objetos,podendo aparecer ao longo de todo ciclo de análise e projeto de um sistema
Cada padrão descreve um problema que ocorrem repetidas vezes em nosso ambiente e fornece o núcleo 
da solução para aquele problema, de tal maneira que se pode usar essa solução milhões de vezes sem 
nunca fazê-la da mesma forma
Os padrões de projeto são descrições de objetos que se comunicam e classes que são customizadas para 
resolver um problema genérico de design em um contexto específico.
Um padrão de projeto define uma estrutura que obrigatoriamente não poderá ser alterada pelo 
desenvolvedor
a diversidade de padrões disponíveis é bastante grande, pode-se ter, por exemplo, padrões arquiteturais, 
padrões de análise, padrões de projeto e padrões de código.
Um padrão de projeto define uma estrutura que obrigatoriamente não poderá ser alterada 
pelo desenvolvedor
Esses são padrões de projeto GoF estudados em aula, EXCETO:
Workflow
Adapter
Observer
Strategy
Facade
Workflow
Consideram as afirmativa abaixo sobre o padrão protype I - Declara um método chamado clone na 
superclasse abstrata do modelo (Prototype). Em função desta declaração, cada classe concreta derivada 
deve ser capaz de gerar uma nova instância de si próprio. II - , Entre as aplicações para este padrão de 
projeto está a facilidade de instanciar classes em tempo de execução. III Quando as instancias de uma 
classe apresentam poucas combinações de estados, pode ser mais conveniente definir previamente um 
conjunto de protótipos e cloná-los, sempre que foi necessário.
As afirmativas I, III, estão corretas e II errada
As afirmativas II, III estão corretas e a afirmativa I está errada.
As afirmativas I, II, III estão incorretas
As afirmativas estão todas corretas
As afirmativas I, II, estão corretas e a afirmativa III está errada.
As afirmativas estão todas corretas
Conhecido como padrões da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os Padrões 
GoF (Group of Four) estão divididos pelos seguintes famílias de padrões: Padrões de Criação ou de Construção, 
Padrões Estruturais e Padrões Comportamentais.
Considerando os padrões de Criação ou de Construção, analise o modelo abaixo e em seguida marque a 
alternativa que define a representação.
BUILDER.
MEDIATOR.
SINGLETON.
FACTORY METHOD.
PROTOTYPE.
PROTOTYPE
Que padrão estrutural anexa dinamicamente responsabilidades adicionais a um objeto. Provê uma 
alternativa flexível ao uso de herança como mecanismo de extensão de funcionalidade:
Facade
Composite
Decorator
Bridge
Adapter
Decorator
(CESGRANRIO - 2009) Ao consultar informações a respeito dos padrões de projeto Adapter e 
Bridge, um Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a.
O foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes.
Ambos são padrões estruturais que possuem alguns atributos em comum.
O Adapter é inferior ao Bridge porque não evita a replicação de código.
O Bridge estabelece uma ponte entre uma abstração e suas possíveis implementações.
Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto para outro 
objeto.
O Adapter é inferior ao Bridge porque não evita a replicação de código.
Que padrão estrutural usa compartilhamento para suportar um grande número de pequenos 
objetos de forma eficiente.
Composite
Decorator
Bridge
Flyweight
Facade
Flyweight
Os padrões de projetos, quando aplicados ao desenvolvimento de aplicações, fornecem meios de descrever soluções comuns para 
problemas comuns, resultando em redução de tempo gasto com o desenvolvimento e melhoria da qualidade da aplicação.
(FCC - 2009) Analise:
I. É o responsável pela especificação dos tipos de objetos a serem criados usando uma "instância" prototípica e pela criação de 
novos objetos copiando este protótipo.
II. Define uma interface de nível mais alto que torna o subsistema mais fácil de usar e fornece uma interface única para um 
subsistema com diversas interfaces; compõe o grupo de padrões estruturais.
III. Integrante do grupo de padrões comportamentais, ele provê uma forma de acessar sequencialmente os elementos de um 
agregado de objetos, sem expor a representação interna desse agregado.
IV. As consequências do uso deste padrão é que o encapsulamento é mantido, já que objetos usam sua própria informação para 
cumprir responsabilidades; leva ao fraco acoplamento entre objetos e à alta coesão, uma vez que objetos fazem tudo que é 
relacionado à sua própria informação.
As afirmações correspondem, respectivamente, aos padrões
Prototype, Façade, Iterator e Expert.
Controller, Expert, Singleton e Prototype.
Command, Singleton, Controller e Façade.
Command, Iterator, Singleton e Expert.
Adapter, Façade, Command e Iterator.
Prototype, Façade, Iterator e Expert.
Marque a única alternativa correta sobre um cenário de aplicação do padrão de projeto Template Method
Armazenamos o estado interno de um objeto para permitir a implementação da operação de desfazer 
(undo)
Garantimos que não será possível instanciar mais do que 1(uma) instância de uma determinada classe
Implementamos partes invariantes de um algoritmo em uma classe abstrata e deixamos que o restante 
do código seja implementado nas subclasses
Permitimos, em tempo de execução, que sejam adicionadas novas operações sobre uma estrutura de 
dados
Possibilitamos a comunicação entre interfaces incompatíveis
Implementamos partes invariantes de um algoritmo 
em uma classe abstrata e deixamos que o restante 
do código seja implementado nas subclasses
O método Arrays.sort (java.util) recebe como parâmetro um objeto do tipo Comparator que implementa um 
método compare(a, b) e utiliza-o para definir as regras de ordenação, assim evitamos duplicidade de código 
permitindo sobrescrita apenas do critério de comparação do algoritmo de ordenação, no qual os outros 
passos permanecem invariantes. Essa situação exemplifica qual dos padrões GOF abaixo:
State
Builder
Command
Template Method
Flyweight
Template Method
Prova 01
Seguindo os princípios Especialista da Informação qual o critério deve ser adotado na escolha de uma classe 
para receber uma nova responsabilidade? 
Resposta: deixa a reposabilidade ao especilista da 
informação - a classe para atribuir a resposabilidade
Os métodos polimórficos utilizam os conceitos de 
overloading e overrinding. Apresente a diferença entre os 
dois 
conceitos. 
Resposta: overloading - sobrecarga - utiliza varios metodos com o mesmo nome e com parementos diferentes 
overrinding - sobreescrita - utiliza o mesmo metodo com o mesmo nome e com os mesmos paramentos 
anulando o anterior - aqui que se faz mesmo o polimórfismo.
Ter uma baixa coesão nos objetos do sistema pode gerar difícil compreensão e reutilização, além de 
afetar a 
manutenibilidade. O que é ter baixa coesão ?
Gabarito: É quando se tem uma mesma classe 
executando muitos trabalhos, realizando muitas coisas 
não 
relacionadas.
O uso de classes "statics" garante que somente uma instãncia estará em 
memória e que a destruição pelo 
"garbage collection" será mais rápida do que o uso do padrão singleton. Por 
que então devemos usar o padrão 
singleton?
Quando se tem a necessidade de garantir que, apenas 
uma única instância de uma determinada 
classe, seja carregada no sistema.

Continue navegando