Buscar

80 questoes Padroes de Projeto de Software estacio ead

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

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

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ê viu 3, do total de 10 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

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

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ê viu 6, do total de 10 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

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

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ê viu 9, do total de 10 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

Prévia do material em texto

1 - 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. 
5 - 1 - 3 - 2 – 4
2 - Para facilitar a manutenção da aplicação, há um design pattern que tem como objetivo principal centralizar o acesso
aos dados em uma única camada. Esse design pattern é o:
DAO
3 - 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? 
Singleton
4 - 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 nor-
malmente 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 pedi-
do preexistente. Na implementação dessa funcionalidade, seu desenvolvedor deve utilizar qual padrão de projeto do ca-
tálogo GoF (Gang of Four), dentre os listados abaixo? 
Prototype
5 - Dado o diagrama de classe identifique o padrão GoF estrutual:
Adapter
6 - O padrão Adpater é bastante utilizado para compatibilizar classes implementas por programadores diferentes, ou de-
senvolvidas 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.
7 - Estruturar um sistema em subsistemas ajuda a reduzir a complexidade do problema (Gamma et al., 2000). No entan-
to, um objetivo comum de todos os projetos é minimizar a comunicação e as dependências entre os diferentes subsiste -
mas. 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:
Facade
8 - As principais aplicabilidades do padrão command de projeto são: 
I) permitir fácil inclusão de novos comandos; 
II) permitir tratamento de requisições concorrentes, manter histórico de execução de comandos; 
III) suportar operações para desfazer comandos e; 
IV) evitar o acoplamento direto entre classes e serviços. 
Podemos a firmar com certeza que: 
As afirmativas I, II, III e IV estão corretas.
9 - Um arquiteto de software estuda que padrões de projeto são apropriados para o novo sistema de vendas de uma em-
presa. Ele deve considerar que o padrão:
Chain of Responsibility evita o acoplamento entre o remetente de uma solicitação e seu destinatário, dando oportunida -
de para mais de um objeto tratar a solicitação.
10 - 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 pro -
cedural. 
II - O padrão Interpreter tem como desvantagem definir uma classe para cada gramática, pois quando se tem muitas gra-
má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.
II - III – IV
11 - Os design patterns:
podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar padrões de projeto re -
presentando-os como colaborações.
 
12 - Analise as sentenças sobre padrões de projeto de software e, em seguida, assinale a alternativa correta: 
I. Permitem descrever fragmentos de projeto e reusar ideias de projeto; 
II. Dão nome e forma a procedimentos abstratos, regras e melhores práticas relativas às técnicas orientadas a objetos; 
III. Ajudam a escolher alternativas de projeto que tornam um sistema reutilizável.
Todas as sentenças estão corretas
13 - Os padrões de criação abstraem o processo de instanciação. Um padrão de criação de classe usa a herança para
variar a classe que é instanciada, enquanto que um padrão de criação de objeto delegará a instanciação para outro
objeto.¿ Padrões Projeto, 1º edição/2000.Gamma. Segundo Metsker, 2004, o padrão de projeto
_____________________ tem como solução mover a lógica de construção de uma classe para um objeto externo, a fim
de reduzir a complexidade da mesma e permitir a construção gradual de objetos-alvo a partir dessa classe. Escolha uma
das alternativas abaixo que preenche corretamente a lacuna apresentada na descrição acima. 
Builder
14 - Qual dos padrões GOF abaixo é mais indicado quando necessitamos criar objetos de uma determinada classe, os 
quais só têm alguns poucos estados possíveis e é melhor copiá-los e aproveitar o seu estado atual do que criar um novo
objeto no estado inicial.
Prototype
15 - Assinale a alternativa correspondente ao padrão de projeto utilizado para adicionar responsabilidades dinâmicas 
a objetos.
Decoretor
16 - 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 Adapter é inferior ao Bridge porque não evita a replicação de código. 
17 - A utilização do padrão estrutural de projeto cula ideia é utilizar um substituto para o objeto real, mantendo a mesma
interface do original sempre que for inconveniente, ou indesejável, acessá-lo diretamente é conhecido como:
Proxy
18 - O presidente de uma empresa determinou que fosse disponibilizadoum 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 (Ap -
plication 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:
Facade
19 - 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. 
II - 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 estão todas corretas
20 - Marque a única alternativa correta sobre um cenário de aplicação do padrão de projeto Template Method:
Implementamos partes invariantes de um algoritmo em uma classe abstrata e deixamos que o restante do código seja
implementado nas subclasses
21 - O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido como "Construtor
Virtual" chama-se:
Factory Method
22 - Um desenvolvedor de sistema computacional programou as seguintes classes abaixo: 
CÓDIGO EM JAVA 
. Classe Geometria: 
public abstract class Geometria { 
private Figura objeto; 
public abstract void criaObjeto(); 
public Figura getObjeto() {return objeto;} 
} 
. Classe GeoCirculo: 
public class GeoCirculo extends Geometria { 
private final double r; 
public GeoCirculo (double r) {this.r = r;} 
@Override 
public void criaObjeto() { this.objeto = new Circulo(r);} 
} 
. Classe GeoQuadrado: 
public class GeoQuadrado extends Geometria { 
private final double l; 
public GeoQuadrado(double l) {this.l = l;} 
@Override 
public void criaObjeto() {this.objeto = new Quadrado(l);} 
} 
. Classe GeoTriangulo: 
public class GeoTriangulo extends Geometria { 
private final double a, l;
public GeoTriangulo(double a, double l) { 
this.a = a; 
this.l = l; 
} 
@Override 
public void criaObjeto() {this.objeto = new Triangulo(a, l);} 
} 
. Classe Figure: 
public abstract class Figura { 
public abstract double area(); 
} 
. Classe Circulo: 
public class Circulo extends Figura{ 
private double raio; 
public Circulo (double raio) {this.raio = raio;} 
@Override 
public double area() {return Math.pow(raio,2)*3.14159;} 
public double getRaio() {return raio;} 
public void setRaio(double raio) {this.raio = raio;} 
} 
. Classe Quadrado: 
public class Quadrado extends Figura { 
private double lado; 
public Quadrado(double lado) {this.lado = lado;} 
@Override 
public double area() {return Math.pow(lado, 2);} 
public double getLado() {return lado;} 
public void setLado(double lado) {this.lado = lado;} 
} 
. Classe Quadrado: 
public class Triangulo extends Figura { 
private double altura, largura; 
public Triangulo (double altura, double largura) { 
this.altura = altura; 
this.largura = largura; 
} 
@Override 
public double area() {return (altura*largura)/2;} 
public double getAltura() {return altura;} 
public void setAltura(double altura) {this.altura = altura;} 
public double getLargura() {return largura;} 
public void setLargura(double largura) {this.largura = largura;} 
} 
Analisando o que foi codificado pelo desenvolvedor podemos averiguar que ele utilizou um modelo dos padrões de pro-
jeto GoF (Gang of Four) pertencente a categoria dos padrões de criação. Baseado nesse contexto, assinale abaixo a úni -
ca opção que informa corretamente qual foi o modelo dos padrões GoF de criação empregado no desenvolvimento das
classes JAVA apresentada anteriormente: 
Factory Method (Método de fabricação).
23 - 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 sis -
tema 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 funcionali -
dade corresponde a criar uma cópia de um pedido a partir de pedido preexistente. Na implementação dessa funcionali-
dade, seu desenvolvedor deve utilizar qual padrão de projeto do catálogo GoF (Gang of Four), dentre os listados abai-
xo?
Prototype
24 - 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? 
Singleton
25 - 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 Pro-
jeto Estrutural e Padrão de Projeto Comportamental, são conhecidos como:
Decorator e Chain of Responsibility
26 - Assinale a alternativa correspondente ao padrão de projeto utilizado para adicionar responsabilidades dinâmicas 
a objetos.
Decorator
27 - O objetivo do padrão Flyweight é diminuir o consumo de memória, porém deve ser utilizado com cautela; Gamma
et al (2000). São várias as recomendações para seu uso. Analise as alternativas abaixo e marque a alternativa que NÃO
se refere a uma recomendação para uso do padrão Flyweight. 
O cliente não precisar conhecer as regras do negócio.
28 - 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 
Facade e Bridge
29 - A implementação do padrão de projeto Chain of Responsability requer que cada objeto receptor de uma determina-
da 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. 
As partes invariantes, conforme a situação, contexto ou problema a ser resolvido, podem ser redefinidas em classes abs-
tratas gerando interconexão entre os objetos.
30 - 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:
Template Method.
31- Prover uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes
concretas." . Para qual padrão de projeto a afirmação se relaciona?
Abstract Factory
32 - Dentre as opções apresentadas para o padrão Prototype, no que se refere, as aplicações para este padrão de 
projeto, assinale a única que estrá correta.
facilidade de instanciar classes em tempo de execução.
33 - Observe a figura abaixo e escolha dentre as opções o padrão GOF para resolver o problema com a estrutura 
apresentada.
Composite
34 - As principais aplicabilidades do padrão command de projeto são: 
I) permitir fácil inclusão de novos comandos; 
II) permitir tratamento de requisições concorrentes, manter histórico de execução de comandos; 
III) suportar operações para desfazer comandos e; 
IV) evitar o acoplamento direto entre classes e serviços. 
Podemos a firmar com certeza que: 
As afirmativas I, II, III e IV estão corretas.
35 - Aponte dentre as opções colocadas aquela que corresponde a estrutura do padrão que sugere que a modelagem do 
problema seja realizada através de uma gramática recursiva..
Interpreter
36 - 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:
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.
37 - O padrão de projeto State deve ser implementado não somente quando o comportamento de um objeto depende 
do seu estado, mas também quando a funcionalidade de um objeto possui _______________; Complete a lacuna 
com a opção correta:
condicionais grandes;
38 - 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.
as extensões para novas variações são fáceis de adicionar,
39 - Podemos afirmar que os Padrões Estruturais da família GoF:
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração
mútua.
40 - 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
41 - 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 Adapter
42 - 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:
Facade
43 - Aponte dentre as opções colocadas aquela que corresponde a estrutura do padrão que sugere que a modelagem do
problema seja realizada através de uma gramática recursiva:
Interpreter
44 - 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
45 - 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
46 - Marque a alternativa que apresenta apenas padrões GRASP?
Coesão alta, controlador e polimorfismo
47 - 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.
48 - Qual dos padrões GOF abaixo é mais indicado quando necessitamos criar objetos de uma determinada classe, os
quais só têm alguns poucos estados possíveis e é melhor copiá-los e aproveitar o seu estado atual do que criar um novo
objeto no estado inicial.
Prototype
49 - Marque a alternativa que melhor descreve uma situação típica onde poderia ser utilizado o padrão de projeto
Adapter?
Um programador precisar utilizar uma classe que possui interface diferente da classe existente na aplicação.
50 - A utilização do padrão estrutural de projeto cuja ideia é utilizar um substituto para o objeto real, mantendo a mesma
interface do original sempre que for inconveniente, ou indesejável, acessá-lo diretamente é conhecido
como:
Proxy
51 - Dentre as opções colocadas abaixo, assinale aquela que corresponde ao padrão de projeto que requer para sua
implementação, 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:
Chain of Responsability
52 - 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ção e 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
53 - São responsabilidades do GRASP?
Falso - Tratar instanciamento único (Singleton)
Verdadeiro - Baixo acoplamento das classes
Verdadeiro - Tratar o polimorfismo
Verdadeiro - Alta coesão das classes
Falso - Tratar a estrutura parte-todo (Composite)
54 - Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte questão: Como distribuir
responsabilidades buscando alcançar Coesão Alta ou Acoplamento Baixo?
Invenção Pura
55 - Analise as sentenças sobre padrões de projeto de software e, em seguida, assinale a alternativa correta: 
I. Permitem descrever fragmentos de projeto e reusar ideias de projeto; 
II. Dão nome e forma a procedimentos abstratos, regras e melhores práticas relativas às técnicas orientadas a objetos; 
III. Ajudam a escolher alternativas de projeto que tornam um sistema reutilizável.
Todas as sentenças estão corretas
56 - 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.
57 - 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 Adapter é inferior ao Bridge porque não evita a replicação de código. 
58 - 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 osubsistema 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.
59 - 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.
Template Method
60 - O padrão de projeto Comand apresenta uma serie de aplicabilidades. Assinale dentre as opções abaixo a única que
não esta correta. permitir fácil inclusão de novos comandos, permitir requisições concorrentes, manter histórico de
execução de comandos, suportar operações para desfazer comandos e, principalmente, evitar o acoplamento direto
entre classes e serviços. permitir tratamento de requ 
Permitir em casos excepcionais o acoplamento direto entre classes e serviços;
61 - 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? 
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 
62 - O padrão Variações protegidas tem como característica:
É 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.
63 - Analise as sentenças abaixo sobre os grupos de padrões da família GoF e, em seguida, assinale a 
alternativa correta:
I. Os Padrões Comportamentais são projetados para organizar, gerenciar e combinar diferentes 
comportamentos. Podemos citar os seguintes padrões pertencentes a esse grupo: Chain of Responsibility, 
Command e Interpreter.
II. Os Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente envolve 
decisões estáticas para escolher, por exemplo, quais objetos instanciar ou a quais classes delegar 
responsabilidade. São doze os padrões de criação: Adapter, Bridge, Composite, Decorator, Façade, Flyweight, 
Proxy, Abstract Factory, Builder, Factory Method, Prototype e Singleton.
III. Os Padrões Estruturais definem caminhos comuns para a organização de diferentes tipos de objetos, 
facilitando sua integração e colaboração mútua.
Apenas as sentenças I e III estão corretas
64 - 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 estão todas corretas
65 - Construtores em Java definem uma maneira padrão de construir objetos. No entanto, depender de
construtores para instanciar objetos pode nos levar a alguns problemas dos quais podemos citar, exceto:
Não é preciso saber a classe concreta do objeto para criá-lo
66 - Que padrão estrutural usa compartilhamento para suportar um grande número de pequenos objetos de
forma eficiente.
Flyweight
67 - 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:
Template Method.
68 - Considere a seguinte definição: "Define um objeto que encapsula o modo como um conjunto de objetos
interage. Promove um acoplamento fraco entre objetos, evitando que referenciem diretamente um ao outro e
permitindo que se possa variar a interação entre eles de modo independente.(Gamma et al., 2000)"
Marque a alternativa que indica o nome do padrão relacionado:
Mediator
69 - 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?
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.
70 - 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 a atividade;
Questões Abertas
1 - Qual a principal expectativa de usabilidade do Padrão Estrutural Proxy:
Providenciar um substituto ou um ponto central para um controlar o acesso a outro.
2 - No desenvolvimento de sistemas baseado na Orientação a Objetos são utilizados padrões de projetos que buscam 
utilizar conhecimentos já adquiridos e comprovados. Assim, o padrão de projeto GRASP COESÃO tem como objetivo 
desenvolver procedimentos com objetivo bem definido. Quais as facilidades são atribuídas ao uso desse padrão?
Facilidade na reutilização, manutenção e conseqüente garantia de continuidade. 
3 - Qual a principal utilidade do padrão Intepreter segundo a teoria apresentada no curso?
Resposta: traduzir, instanciar, e prover a interação entre objetos
Gabarito: O padrão de projeto Intepreter descreve como projetar um conjunto de classes para representar e interpretar
uma gramática para linguagens simples. Sua aplicação é recomenda 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.
4 - 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.
5 - Cite duas vantagens de se aplicar o Padrão FactoryMethod:
1- Cria uma hierarquia de criação de objetos;
2- A criação dos objetos é desacoplada das classes concretas;
6 - Os métodos polimórficos utilizam os conceitos de overloading e overrinding. Apresente a diferença entre os dois
conceitos.
O conceito OVERLOADING é a sobrecarga dos métodos: define vários métodos de mesmo nome com assinaturas
diferentes.
O conceito OVERRIDINGaltera o comportamento do método na subclasse, mantendo a mesma assinatura, com
funcionalidade diferente.
7 - 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 vida de um sistema. Os padrões são diversos, por exemplo, padrões
arquiteturais, padrões de análise, padrões de projeto e padrões de código e padrões estruturais. Explique o que são
padrões estruturais e dê exemplo de dois deles.
Padrões Estruturais definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua
integração e colaboração mutua. Há sete padrões estruturais GoF: Adapter, Bridge, Composite, Decorator, Façade,
Flyweight e Proxy. 
8 - Por que os padrões são uma maneira eficiente de reuso de projeto?
Por que o principal objetivo do padrão é obter um baixo acoplamento e alto nível de coesão, o que torna os módulos
com independência e responsabilidade definidas em contextos específicos.
9 - O padrão Façade aumenta o nível da codificação. A afirmação é falsa ou verdadeira? Explique.
Sim. Pois, esconde do programador detalhes do sistema. Por exemplo, para a realização de um cadastro, o
mesmo não necessitará saber o nome do banco, nome da tabela, porta, url e sim oque deverá ser feito, no
caso, o cadastro no banco.
10 - 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. Cite uma vantagem e uma desvantagem do padrão:
Vantagem:
- O acoplamento é reduzido, pois, o padrão libera um objeto de ter que conhecer qual o outro objeto que trata
de uma solicitação. Além disso, tanto remetente como receptor não têm conhecimento explícito um do outro;
- 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;
- Flexibilidade na atribuição de responsabilidades, ou seja, pode-se mudar a cadeia de objetos em tempo de
execução, adicionando ou removendo objetos.
Desvantagem: receptação não é garantida, isto é, no momento que a requisição não tem um receptor explícito,
não há garantias que ela será tratada, além disso, a cadeia precisa estar corretamente configurada, caso
contrário, requisições podem não ser atendidas também.

Outros materiais