Buscar

PADRÕES DE PROJETO DE SOFTWARE - 1 a 5

Prévia do material em texto

1. 
 
 
Podemos afirmar que padrões de projeto de software: 
 
 
 
permitem descrever fragmentos de projeto e reusar idéias de projeto, ajudando desenvolvedores a se nivelar com a 
experiência de outros. 
 
dificultam de alguma foram a escolha de alternativas de projeto que tornam um sistema reutilizável, aumentando as 
alternativas que a comprometam. 
 
difcultam a reutilização de projetos e arquiteturas bem sucedidas. 
 
não influenciam nos procedimentos, regras e práticas relativas às técnicas orientadas a objetos. 
 
invariavelmente pioram a documentação e a manutenção dos sistemas. 
 
 
 
Explicação: 
Padrões de projeto é uma maneira testada ou documentada de alcançar um objetivo qualquer. São padrões para alcançar 
objetivos na engenharia de software usando classes e métodos em linguagens orientadas a objeto. Além disso, capturam soluções 
de projeto exaustivamente refinadas com o passar do tempo. 
 
 
 
 
 
 
 
2. 
 
 
Qual o objetivo dos Padrões Estruturais? Assinale a opção CORRETA. 
 
 
Envolve decisões dinâmicas para escolher qual classe instanciar. 
 
 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando 
sua integração e colaboração mutua. 
 
Fornecem um guia de como instanciar objetos. 
 
Mostram como estruturar e encapsular essas decisões. 
 
Definem a quais objetos delegar responsabilidade. 
 
 
 
Explicação: 
Essa afirmativa está CORRETA porque as outras se referem a Padrões de Criação. 
 
 
 
 
 
 
 
3. 
 
 
(FUMARC - 2011) São padrões de projeto GoF (design patterns), EXCETO: 
 
 
 
Criador. 
 
Strategy. 
 
Adapter. 
 
Facade. 
 
Visitor. 
 
 
 
 
 
 
 
4. 
 
 
Uma programadora precisa mudar a implementação chamada de uma função 
em tempo de execução dependendo da entrada de dados. Um dos requisitos 
importantes é ocultar do usuário desta função a exposição das estruturas de 
dados complexas, específicas do algoritmo. Entre os conhecidos padrões de 
Projeto de Software Gang of Four (GoF,1994), qual é o indicado? 
 
 
Builder. 
 
Façade. 
 
Factory Method. 
 
 
Strategy. 
 
Template Method. 
 
 
 
Explicação: 
a) Builder 
Separar a construção de um objeto complexo de sua representação de modo que o mesmo processo de construção possa criar 
diferentes representações. 
b) Strategy 
Definir uma família de algoritmos, encapsular cada uma delas e torná-las intercambiáveis. Strategy permite que o algoritmo varie 
independentemente dos clientes que o utilizam 
c) Façade 
Fornecer uma interface unificada para um conjunto de interfaces em um subsistema. Facade define uma interface de nível mais 
alto que torna o subsistema mais fácil de ser usado. 
d) Template Method 
Definir o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses. Template Method permite 
que subclasses redefinam certos passo de um algoritmo sem mudar a estrutura do mesmo. 
 
Recomendo esta fonte para estudos de Padrões de Projeto: 
https://brizeno.wordpress.com/padroes/ 
 
 
 
 
 
 
 
5. 
 
 
O projeto Orientado a objetos pressupõe a criação de modelos de domínio a partir dos requisitos 
identificados para entendimento do negócio e apresentação de uma solução. A esses modelos são 
acrescidas os aspectos físicos, como os métodos e a troca de mensagens entre eles. A questão é 
decidir a melhor forma de interação entre os métodos, ou seja, a atribuição da responsabilidade 
estabelecida para que se possa gerar um melhor resultado. 
 
Visando facilitar a construção de soluções são apresentados os padrões de projeto. Assinale dentre 
as alternativas a seguir a que NÃO define uma característica atribuída ao uso dos padrões. 
 
 
O nome do padrão é utilizado para agrupar ideias em um conceito. 
 
É apresentado através de uma descrição contendo informações de identificação e registro, como: Nome, Problema, 
Sumário, Solução, Conseqüências e Padrões Relacionados. 
 
Fornece orientação de aplicação em circunstâncias variáveis. 
 
É uma descrição nomeada de um problema e solução que pode ser aplicado em novos contextos. 
 
 
São definidos por especialistas de problemas e servem para aplicação direta em qualquer contexto. 
 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais: 
A partir das diversas definições de padrões de projeto, podemos chegar as seguintes características, como por exemplo: Capturam 
soluções de projeto exaustivamente refinadas com o passar do tempo; São o resultado de um longo processo de projeto, re-
projeto, teste e reflexão sobre o que torna um sistema mais flexível, reusável e modular. 
Assim, chegamos à conclusão que esta é a única alternativa que não define uma característica atribuída aos padrões. 
 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
6. 
 
 
Qual o objetivo dos Padrões de Criação? Assinale a opção CORRETA. 
 
 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando 
sua integração e colaboração mutua. 
 
Tratam da composição de classes e objetos para formar estruturas complexas. 
 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando 
sua integração e colaboração mutua. 
 
 
Fornecem um guia de como instanciar objetos, e envolve decisões dinâmicas para escolher 
qual classe instanciar. 
 
Oferecem formas efetivas para usar conceitos OO como herança e composição. 
 
 
 
Explicação: 
Essa afirmativa está CORRETA porque as outras se referem a Padrões Estruturais. 
 
 
 
 
 
 
 
7. 
 
 
Considere as seguintes assertivas sobre as vantagens do uso de Padrões de Projeto (Design 
Patterns): 
I. Padrões de projeto proporcionam um vocabulário comum de projeto, facilitando comunicação, 
documentação e aprendizado dos sistemas de software. 
II. Padrões de projeto auxiliam no desenvolvimento de software por meio da reutilização do projeto 
de soluções computacionais já testadas e aprovadas. 
III. Uma biblioteca de padrões pode ajudar a melhorar e padronizar o desenvolvimento de software. 
As assertivas corretas são: 
 
 
Somente I e III. 
 
Somente II e III. 
 
 
I, II e III. 
 
Somente II. 
 
Somente I e II. 
 
 
 
 
 
 
 
8. 
 
 
Sabendo que as soluções para os padrões de projeto são divididas em três tipos, de acordo com as 
características destes tipos informe a sequencia correta. I. Abrange a configuração e inicialização de 
objetos e classes. II. Lida com as interfaces e a implementação das classes e dos objetos. III. Lida 
com as interações dinâmicas entre grupos de classes e objetos. 
 
 
I - Comportamental, II - Criacional, III - Estrutural 
 
I - Criacional, II - Estrutural, III - Comportamental 
 
I - Comportamental, II - Estrutural, III - Criacional 
 
I - Estrutural, II - Comportamental, III - Estrutural 
 
 
I - Criacional, II - Comportamental, III - Estrutural 
 
 
 
Explicação: 
Há três grupos de Padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões 
Comportamentais. 
Os Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente 
envolve decisões dinâmicas para escolher, por exemplo, qual classe instanciar ou a quais objetos 
delegar responsabilidade. Esse padrão nos mostra como estruturar e encapsular essas decisões. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas 
complexas;associados à maneira como classes e objetos são organizados estruturalmente; 
oferecem formas efetivas para usar conceitos OO como herança e composição, e são abstrações 
de aspectos estruturais. 
O objetivo dos Padrões Estruturais é definir caminhos comuns para a organização de diferentes 
tipos de objetos, facilitando sua integração e colaboração mutua. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
 
 
1. 
 
 
Considere as afirmativa abaixo sobre o padrão Builder: I ) É utilizado na instanciação de objetos complexos. II)É visto como um 
construtor especializado, que irá executar e avaliar diferentes regras de negócio e demais particularidades relacionadas com a 
criação de um novo objeto. III )A idéia é atribuir a responsabilidade de criação do objeto complexo a outra classe, esta classe 
irá armazenar todas as configurações e regras necessárias para a instanciação do novo objeto. 
 
 
As afirmativas I, III, estão corretas e II errada 
 
 
As afirmativas estão todas corretas 
 
As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 
As afirmativas I, II, III estão incorretas 
 
As afirmativas II, III estão corretas e a afirmativa I está errada. 
 
 
 
Explicação: 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
O BUILDER é um Padrão de Criação. É um padrão cuja responsabilidade é a CONSTRUÇÃO 
O padrão Builder é um padrão de cuja intenção é a Construção, ou seja, são padrões cuja responsabilidade é a CONSTRUÇÃO 
O padrão Builder tenta minimizar a carga que os desenvolvedores tem ao ato de criar 
objetos dentro de um construtor. Isso é comum em desenvolvedores iniciantes. 
 
 
 
 
 
 
 
2. 
 
 
O padrão Singleton é um Padrão de Criação GoF. A grande vantagem deste 
padrão é: Assinale a única resposta CORRETA. 
 
 
Difícil ou impossível de implementar em ambiente distribuído; 
 
Criação "preguiçosa" é complicada em ambiente multithreaded; 
 
Difícil de testar (simulações dependem de instância extra); 
 
Qualidade da implementação depende da linguagem; 
 
 
Acesso central e extensível a recursos e objetos; 
 
 
 
Explicação: 
Esta afirmativa é CORRETA porque as outras dizem respeito a desvantagens do padrão Singletos. 
 
 
 
 
 
 
 
3. 
 
 
A implementação do padrão de projeto PROTOTYPE é facilitada quando usada na linguagem de 
programação ________ com a utilização da interface Cloneable, utilizada apenas para indicar que o 
método Object.clone() pode realizar uma cópia, atributo por atributo, das instâncias da classe. 
Assinale a opção que complementa corretamente a lacuna. 
 
 
HTML; 
 
C ++; 
 
 
JAVA; 
 
ASSENBLY; 
 
Qualquer linguagem orientada a objeto. 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
4. 
 
 
O padrão GoF Criacional que define um comportamento de clonagem de classes é: 
 
 
Facade 
 
 
Prototype 
 
Singleton 
 
Abstract Factory 
 
Factory Method 
 
 
 
Explicação: 
Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e 
Singleton. 
O PROTOTYPE é um Padrão de Criação. É um padrão cuja responsabilidade é a CONSTRUÇÃO 
Ele especifica os tipos de objetos a serem criados usando uma instância como protótipo e criar 
novos objetos ao copiar este protótipo. 
 
 
 
 
 
 
 
5. 
 
 
Qual é o padrão GoF criacional correspondente ao código abaixo? 
 public static void main(String[] args) { 
 ObraPadrao obraPadrao = new ObraPadrao(); 
 ObraPadrao obraNova = obraPadrao.clonar(); 
 obraNova.setValor(200000.0); 
 ..... 
 ..... 
 
 
Factory Method 
 
 
Prototype 
 
Adapter 
 
Singleton 
 
Builder 
 
 
 
Explicação: 
O padrão Prototype especifica tipos a criar usando uma instância como protótipo e criar novos 
objetos ao copiar este protótipo. O padrão de projeto Prototype declara um método chamado 
clone na superclasse abstrata do modelo (Prototype) 
 
 
 
 
 
 
 
6. 
 
 
Assinale a afirmativa correta sobre o padrão Builder: 
 
 
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. 
 
A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida 
 
 
Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto complexo tanto da 
especificação, quanto das partes que o compõem. 
 
Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a lógica de criação em 
uma hierarquia de herança. 
 
é uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, tornando o código 
dependente a complexidade das classes relacionadas 
 
 
 
Explicação: 
O padrão Builder é um padrão de cuja intenção é a Construção, ou seja, são padrões cuja responsabilidade é a CONSTRUÇÃO 
O padrão Builder tenta minimizar a carga que os desenvolvedores tem ao ato de criar objetos dentro de um construtor. Isso é 
comum em desenvolvedores iniciantes. 
 
 
 
 
 
 
 
7. 
 
 
(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? 
 
 
Command. 
 
Factory Method. 
 
Builder. 
 
Abstract Factory. 
 
 
Prototype. 
 
 
 
 
 
 
 
8. 
 
 
O padrão Singleton é um Padrão de Criação GoF. Com relação aos seus 
objetivos podemos afirmar que: 
I- O padrão de projeto Singleton declara um método chamado clone na 
superclasse abstrata do modelo. 
II- O padrão Singleton está direcionado para as situações onde precisamos 
manter uma única instancia de uma classe durante toda a execução da 
aplicação. 
III- O padrão Singleton é bastante útil para guardar o estado de um objeto 
em determinados momentos. 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 
Somente os itens I e II; 
 
Somente os itens II e III; 
 
Somente o item I; 
 
Somente os itens I e III; 
 
 
Somente o item II; 
 
 
 
Explicação: 
Os itens I e III estão errados porque eles se referem ao padrão Prototype. 
 
 
1. 
 
 
Qual padrão desacopla uma abstração de sua implementação de modo que as duas possam variar independentemente? 
 
 
Nenhuma das anteriores.Bridge. 
 
Proxy. 
 
Façade. 
 
Decorator. 
 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, 
Composite, Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua 
integração e colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas 
complexas; associados à maneira como classes e objetos são organizados estruturalmente; 
oferecem formas efetivas para usar conceitos OO como herança e composição, e são abstrações 
de aspectos estruturais. 
O padrão Bridge, desacopla uma abstração de sua implementação, de tal forma que os dois 
possam variar independentemente. 
 
 
 
 
 
 
 
2. 
 
 
[BNDES - CESGRANRIO 2009]A o consultar informações a respeito dos padrões de projeto Adapter e 
Bridge, um Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a. 
 
 
Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto para outro objeto. 
 
O Bridge estabelece uma ponte entre uma abstração e suas possíveis implementações. 
 
 
O Adapter é inferior ao Bridge porque não evita a replicação de código. 
 
Ambos são padrões estruturais que possuem alguns atributos em comum. 
 
O foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes. 
 
 
 
 
 
 
 
3. 
 
 
Imagine que você está desenvolvendo um sistema para um bar 
especializado em coquetéis, onde existem vários tipos de coquetéis que 
devem ser cadastrados para controlar a venda. Os coquetéis são feitos 
da combinação de uma bebida base e vários outros adicionais que 
compõe a bebida. Por exemplo: 
Conjunto de bebidas: 
 Cachaça 
 Rum 
 Vodka 
 Tequila 
Conjunto de adicionais: 
 Limão 
 Refrigerante 
 Suco 
 Leite condensado 
 Gelo 
 Açúcar 
Então, como possíveis coquetéis temos: 
 Vodka + Suco + Gelo + Açúcar 
 Tequila + Limão + Sal 
 Cachaça + Leite Condensado + Açúcar + Gelo 
Qual padrão você usaria para representar a estrutura acima? 
 
 
 
Decorator 
 
State 
 
Observer 
 
Façade 
 
Strategy 
 
 
 
Explicação: 
O padrão Decorator é um padrão de cuja intenção são as Extenções. 
O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. Decorators oferecem uma alternativa flexível ao uso de herança para estender 
uma funcionalidade (para a extensão de funcionalidade). 
 
 
 
 
 
 
 
4. 
 Qual padrão estrutural permite que um 
objeto utilize serviços de outros objetos 
 
com interfaces diferentes por meio de uma 
interface única: 
 
 
 
 
Adapter 
 
Flyweight 
 
Composite 
 
Bridge 
 
Facade 
 
 
 
 
 
 
 
5. 
 
 
Qual o nome do padrão de projeto que pode ser utilizado para permitir que uma hierarquia de 
abstrações e suas diferentes implementações possam variar independentemente? 
 
 
Adapter 
 
Proxy 
 
Flyweight 
 
 
Bridge 
 
Façade 
 
 
 
 
 
 
 
6. 
 
 
O padrão Adpater é bastante utilizado para compatibilizar classes implementas por programadores 
diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces 
diferentes em uma estrututura hierarquica única, sem precisar implementar novamente todas as 
funcionalidades e interfaces da classe já existente, considere as afirmativas: I - A idéia é criar uma 
nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com a classe já 
existente (Adaptee) com interface diferente da estrutura de classes que se pretende utilizar no 
sistema. Ii - Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e 
entender a complexa implementação realizada, mantém a uniformidade do seu projeto original. Iii 
cria uma hierarquia de classes diferentes categorias de objetos sem relação de herança. 
 
 
 
As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 
As afirmativas 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, III, estão corretas e II errada 
 
 
 
Explicação: 
O conceito do Adapter é converter a interface de uma classe em outra interface esperada pelos clientes. Adapter permite a 
comunicação entre classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces. 
A ideia é fazer adaptação entre dois recursos. 
Devemos usar sempre que for necessário adaptar uma interface para um cliente 
Vejamos o exemplo da tomada. O plug é três pinos, e a tomada é de dois pinos, então eu tenho que ter uma classe adaptadora. 
 
 
 
 
 
 
 
7. 
 
 
O padrão Bridger é um Padrão Estrutural GoF. Com relação aos seus 
objetivos podemos afirmar que (assinale a opção INCORRAETA). 
 
 
 
No padrão Bridge a solução natural quando se pretende desenvolver uma determinada 
solução para duas plataformas diferentes é utilizar herança, implementando uma classe 
derivada para cada situação; 
 
O padrão Bridge desacopla uma abstração de sua implementação para que os dois possam 
variar independentemente; 
 
O padrão Bridge é usado quando for necessário evitar uma ligação permanente entre a 
interface e implementação; 
 
O padrão Bridge converte a interface de uma classe em outra interface esperada pelos 
clientes; 
 
O padrão Bridge permiti que o sistema consiga se adaptar dinamicamente a diferentes 
plataformas é mais desejável ainda; 
 
 
 
Explicação: 
Essa afirmativa está INCORRETA, porque ela se refere ao padrão Adapter. 
 
 
 
 
 
 
 
8. 
 
Qual o padrão Gof utilizado na figura abaixo? 
 
 
 
 
 
Observer 
 
 
Adapter 
 
Singleton 
 
Façade 
 
Composite 
 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, 
Composite, Decorator, Façade, Flyweight e Proxy. 
O padrão Adpater é bastante utilizado para compatibilizar classes implementadas 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. 
A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a 
conexão com a classe já existente (Adapter) com interface diferente da estrutura de classes que 
se pretende utilizar no sistema. 
Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a 
complexa implementação realizada, mantém a uniformidade do seu projeto original. 
 
 
 
 
1. 
 
 
Em muitas situações de programação, é possível resolver o problema de acesso a um determinado objeto com a utilização de 
uma referência a variável desejada, este é um mecanismo de simples utilização e bastante conhecido pelos desenvolvedores de 
software. No entanto, quando é necessário utilizar um mecanismo mais versátil e sofisticado, por exemplo, 
 
- para postergar a instanciação de um objeto 
- para controlar o acesso ao mesmo 
- para acessá-lo em uma máquina remota 
- para gravá-lo em uma base de dados, a alternativa de utilizar uma referência ao objeto não é mais apropriada. 
- utilização de uma superclasse abstrata para definir a interface da classe desejada e uma classe derivada adicional derivada. 
 
Marque a alternativaque indica o padrão de projeto utilizado segundo a descrição acima. 
 
 
Coesão 
 
Façade 
 
 
Proxy 
 
Acoplamento 
 
Flyweight 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
2. 
 
 
(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 
 
 
Adapter e Façade. 
 
 
Façade e Bridge. 
 
Bridge e Adapter. 
 
Composite e Bridge. 
 
Façade e Composite. 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
3. 
 
 
O padrão Flyweight é um Padrão Estrutural GoF. Quando não devemos usar 
esse padrão? 
I- Quando o estado dos objetos não for imutável 
II- Quando o tamanho do conjunto de objetos for significativamente menor 
que a quantidade de vezes em que eles são usados na aplicação; 
III- Quando objetos podem ser usados em diferentes contextos ao mesmo 
tempo (agindo sempre como um objeto independente); 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 
Somente o item II; 
 
Somente os itens I e III; 
 
Somente os itens I e II; 
 
 
Somente o item I; 
 
Somente os itens II e III; 
 
 
 
Explicação: 
Os itens II e III estão errados porque é nesta situação que devemos usar esse padrão. 
No item I é preciso passar o estado mutável como parâmetro e isto pode ser impraticável se o 
estado consistir de vários objetos. 
 
 
 
 
 
 
 
4. 
 
 
Qual a vantagem do padrão Proxyr? Assinale a opção INCORRETA. 
 
 
 
Permite, sempre que for desejável, criar uma interface para um conjunto de objetos com o 
objetivo de facilitar o uso da aplicação; 
 
Permite maior eficiência com caching no cliente; 
 
Tem transparência, ou seja, mesma sintaxe usada na comunicação entre o cliente e sujeito 
real é usada no proxy; 
 
Consigo atribuir um certo grau de inteligência, o que possibilitaria um tratamento 
inteligente dos dados; 
 
Permite o tratamento inteligente dos dados no cliente; 
 
 
 
Explicação: 
Essa afirmativa está incorreta, porque ela se refere ao padrão Façade. 
 
 
 
 
 
 
 
5. 
 
 
Que padrão estrutural provê um ponto de atendimento para que outro objeto possa controlar o 
acesso ao primeiro: 
 
 
 
 
Proxy 
 
Flyweight 
 
Facade 
 
Adapter 
 
Decorator 
 
 
 
 
 
 
 
6. 
 
 
Qual o padrão fornece um substituto ou marcador para controlar o acesso a um objeto? 
 
 
Bridge. 
 
Façade. 
 
Nenhuma das anteriores. 
 
Adapter. 
 
 
Proxy. 
 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, 
Composite, Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua 
integração e colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas 
complexas; associados à maneira como classes e objetos são organizados estruturalmente; 
oferecem formas efetivas para usar conceitos OO como herança e composição, e são abstrações 
de aspectos estruturais. 
O padrão Proxy (procurador) controla o acesso a um objeto através de outro objeto, que atua 
como seu substituto, ou como um envoltório. 
 
 
 
 
 
 
 
7. 
 
 
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 
 
 
 
Uma aplicação utiliza um pequeno número de objetos. 
 
A aplicação não depende da identidade do objeto. 
 
Muitos grupos de objetos podem ser substituídos por relativamente poucos objetos compartilhados, uma vez que estados 
extrínsecos são removidos. 
 
Os custos de armazenamento são altos por causa da grande quantidade de objetos. 
 
Uma aplicação utiliza um grande número de objetos. 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
8. 
 
 
Uma empresa tem, dentre outros, um sistema de vendas e outro de controle de estoque. Supondo 
que o sistema de vendas necessita utilizar funcionalidades do sistema de controle de estoque, qual 
padrão deve ser utilizado para que estas funcionalidades sejam disponibilizadas? 
 
 
Fábrica Abstrata 
 
Singleton 
 
Decorator 
 
 
Fachada 
 
Observer 
 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, 
Composite, Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua 
integração e colaboração mutua. 
O padrão Façade (fachada) é um padrão Fachada, ou seja, faz uma fachada única para todas as 
fachadas, ou seja, Fornece uma interface unificada para um conjunto de objetos que constituem 
um subsistema.define uma interface a um nível mais elevado, para tornar um subsistema mais 
fácil de usar. 
Oferece uma interface única para um conjunto de interfaces de um subsistema. Façade define 
uma interface de nível mais elevado que torna o subsistema mais fácil de usar. 
 
 
 
1. 
 
 
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 - 3 - 1 - 2 
 
3 - 4 - 1 - 2 
 
2 - 3 - 4 - 1 
 
4 - 2 - 1 - 3 
 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
 
 
 
 
 
2. 
 
 
O padrão Classe Handler é um Padrão Comportamental GoF. 
Qual afirmativa abaixo NÃO corresponde a esse padrão? 
 
 
Representa um encadeamento de objetos receptores para o processamento de uma série 
de solicitações diferentes; 
 
Fornece um acoplamento mais fraco por evitar a associação explícita do remetente de uma 
solicitação ao seu receptor e dar a mais de um objeto a oportunidade de tratar a 
solicitação; 
 
Encadeia os objetos receptores, passando a solicitação ao longo da cadeia até que um 
objeto a trate; 
 
Evita o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de 
um objeto a oportunidade de tratar a solicitação; 
 
 
A classe Handler é uma classe abstrata, portanto, não pode ser instanciada diretamente; 
 
 
 
Explicação: 
Essa afirmativa NÃO corresponde a Classe Handler está relacionada ao padrão Chain of 
Responsability, porque ela se refere a padrão Chain of Responsability. 
 
 
 
 
 
3. 
 
 
O padrão Chain of Responsability é um Padrão 
Comportamental GoF. Qual o seu objetivo? Assinale a 
afirmativa INCORRETA 
 
 
Encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um 
objeto a trate; 
 
 
Reduz a interconexão entre os objetos, ao invés de um objeto manter uma lista com todos 
os receptores candidatos, eles mantém uma referência única para o sucessor; 
 
Representar um encadeamento de objetos receptores para o processamento de uma série 
de solicitaçõesdiferentes; 
 
Evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de 
um objeto a oportunidade de tratar a solicitação; 
 
Fornecer um acoplamento mais fraco por evitar a associação explícita do remetente de 
uma solicitação ao seu receptor e dar a mais de um objeto a oportunidade de tratar a 
solicitação; 
 
 
 
Explicação: 
Essa afirmativa está relacionada ao padrão Chain of Responsability, porque ela se refere a 
padrão Classe Hanter. 
 
 
 
 
 
4. 
 
 
No padrão MVC é possível definir grupos de componentes principais: o Model 
(Modelo), o View (Apresentação) e o Controller (Controle). Deve fazer parte do 
componente: 
 
 
 
Model, as classes com métodos conhecidos como setters e getters e que representam tabelas do banco de dados. 
 
View, as validações necessárias ao sistema, geralmente definidas através de um conjunto de comparações. 
 
View, uma classe que contém um método para persistir o salário reajustado de um funcionário. 
 
Controller, as animações desenvolvidas em Flash. 
 
Controller, uma classe que contém um método com a finalidade de calcular o reajuste de salário dos funcionários. 
 
 
 
Explicação: 
O padrão de arquitetura MVC é uma combinação de padrões centrada no padrão Observer e 
consiste de três participantes: 
Model: representa os dados da aplicação e regras de negócio associadas com os dados. Notifica o 
View sobre alterações. 
View: é um Observer para o Model. Notifica o Controller sobre eventos iniciados pelo usuário e lê 
dados do Model. 
Controller: é um Observer para o View. Encapsula lógica de controle que afeta o Model e 
seleciona View. 
 
 
 
 
 
5. 
 
 
São exemplos de Padrões de Projeto Comportamentais: 
 
 
Command, Composite e Memento 
 
Mediator, Strategy e Builder 
 
State, Flyweight e Decorator 
 
 
Interpreter, Chain of Responsibility e Observer 
 
Singleton, Mediator e Strategy 
 
 
 
 
 
6. 
 
 
(CESGRANRIO - 2008) Muitos frameworks utilizam um padrão de projeto (design 
pattern) que se baseia no princípio de projeto "Não nos chame, nós iremos 
chamar você" (O Princípio de Hollywood: "Don't call us, we'll call you."). Uma 
classe da aplicação herda de uma classe do framework que possui métodos 
abstratos, os quais são chamados em outros métodos concretos. A classe da 
aplicação sobrepõe os métodos abstratos da classe do framework com métodos 
concretos, permitindo que os métodos concretos da classe do framework sejam 
chamados. 
 
O padrão de projeto (design pattern) em questão chama-se 
 
 
Strategy. 
 
 
Template Method. 
 
Decorator. 
 
Abstract Factory. 
 
Singleton. 
 
 
Gabarito 
Coment. 
 
 
 
 
7. 
 
 
Dentre as opções apresentadas, assinale aquela que corresponde ao padrão de 
projeto que sugere a implementação de um algoritmo que faz uso de diferentes 
métodos, diferenciando das soluções convencionais por deixar o esqueleto deste 
algoritmo fixo em uma superclasse abstrata. 
 
 
Flyweight 
 
Interpreter; 
 
Proxy; 
 
 
Template Method 
 
Chain of Responsability, 
 
 
Gabarito 
Coment. 
 
 
 
 
8. 
 
 
A implementação do padrão de projeto Chain of Responsability requer que cada 
objeto receptor de uma determinada solicitação tenha uma lógica para descrever 
os tipos de solicitação que é capaz de processar e como passar adiante aquelas 
que requeiram processamento por outros receptores. A delegação das solicitações 
pode formar uma árvore de recursão, com um mecanismo especial para inserção 
de novos receptores no final da cadeia existente. 
 
Marque a alternativa que NÃO identifica uma vantagem do padrão de projeto 
Chain of Responsability. 
 
 
Reduz a interconexão entre os objetos, ao invés de um objeto manter uma lista com todos os receptores candidatos, eles 
mantém uma referência única para o sucessor; 
 
 
As partes invariantes, conforme a situação, contexto ou problema a ser resolvido, podem ser redefinidas em classes 
abstratas gerando interconexão entre os objetos. 
 
Remetente e receptor não têm conhecimento explícito um do outro. 
 
Padrão libera um objeto de ter que conhecer qual o outro objeto que trata de uma solicitação. 
 
Flexibilidade na atribuição de responsabilidades, ou seja, pode-se mudar a cadeia de objetos em tempo de execução, 
adicionando ou removendo objetos. 
 
 
Gabarito 
Coment.

Continue navegando