Buscar

PADRÕES DE PROJETOS 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 87 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 87 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 87 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 PROJETOS DE SOFTWARE 
 
AULA 1 - INTRODUÇÃO AOS PADRÕES DE PROJETO 
 
O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido 
como "Construtor Virtual" chama-se: 
 Business Delegate 
 Abstract Factory 
 Dependency Injection 
Certo Factory Method 
 Template Method 
 
Qual o objetivo dos Padrões de Criação? Assinale a opção CORRETA. 
Oferecem formas efetivas para usar conceitos OO como herança e composição. 
Fornecem um guia de como instanciar objetos, e envolve decisões dinâmicas para escolher 
qual classe instanciar 
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. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua 
integração e colaboração mutua. 
 
 
Além dos benefícios tradicionais relacionados com produtividade, redução do tempo de 
desenvolvimento e reaproveitamento de soluções passadas, a utilização de padrões de 
projeto pode contribuir ainda nos seguintes aspectos I - É uma abordagem complementar, 
auxiliam os analistas e desenvolvedores a melhor utilizar as práticas tradicionais de análise e 
projeto orientado a objetos, tais como abstração, encapsula mento, herança, polimorfismo, 
entre outros. II ¿ Cada padrão descreve um conjunto de problemas e a solução é única não 
podendo ser alterado III - Auxiliam programadores inexperientes a desenvolverem soluções 
mais elegantes, melhor documentadas, padronizadas e reutilizáveis. IV - Muitos dos padrões 
de projeto desenvolvidos auxiliam no re fatoramento da aplicação. 
 As afirmativas I, III, IV estão corretas e a afirmativa II está errada 
 As afirmativas II, III, IV estão corretas e a afirmativa I está errada. 
 As afirmativas I, II, IV estão corretas e a afirmativa III está errada 
 As afirmativas I, II, III estão corretas e a afirmativa IV está errada. 
 As afirmativas I, II, III, IV estão corretas 
 
considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão todos 
classificados como criação: 
 Command ; Builder ; Factory Method ; Protype - Singleton 
 Abstractly factory ; Builder ; Factory Method ; Protype - Singleton 
 Abstractly factory ; Bridge ; Factory Method ; Protype ; Singleton 
 Abstractly factory ; Builder ; Factory Method ; Decorator - Singleton 
 Abstractly factory ; Builder ; Composite ; Protype – Singleton 
 
 
(CESGRANRIO - 2008 - TJ-RO - Analista Judiciário - Análise de Sistemas) 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: 
 Singleton 
 Template Method 
 Strategy 
 Decorator 
 Abstract Factory 
 
(2016 - IF-PE) Observe as afirmativas abaixo: I. Com frequência, equipes de desenvolvimento 
de software escrevem classes que proveem funcionalidades similares às de outras classes já 
existentes. Esse padrão se aplica a qualquer contexto em que se deseja implementar 
funcionalidades já implementadas em outra classe, mas com interface diferente da classe já 
implementada. Esse padrão define uma nova classe de maneira que ela contenha uma 
instância da classe velha como um atributo privado, e implemente cada método da nova 
classe usando métodos da classe antiga. II. Fornece uma interface unificada para um 
conjunto de interfaces em um subsistema. Define uma interface de nível mais alto que torna 
o subsistema mais fácil de ser usado. III. Define o esqueleto de um algoritmo em uma 
operação, postergando alguns passos para as subclasses. Permite que subclasses redefinam 
certos passos de um algoritmo sem mudar a estrutura do mesmo. Esse padrão pode ser 
usado para implementar as partes invariantes do algoritmo uma só vez e deixar para as 
subclasses a implementação do comportamento que pode variar. IV. 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. Encadeia os objetos receptores, passando a solicitação ao longo da 
cadeia até que um objeto a trate. Esse padrão é utilizado quando mais de um objeto pode 
tratar uma solicitação e o objeto que a tratará não é conhecido a priori. O objeto que trata a 
solicitação é escolhido automaticamente. V. Você começou a trabalhar em um projeto que 
utiliza tecnologia Java RMI. Nesse projeto, é implementado um padrão de projeto que provê 
um ponto através do qual um objeto controla o acesso a outro. No projeto em questão, um 
objeto remoto que contém a implementação real é acessado através de um outro objeto 
local, de forma que o objeto local controla o acesso ao remoto. Para isso, ambos possuem a 
mesma interface. As afirmativas acima descrevem, respectivamente, os seguintes padrões 
de projeto: 
 Adapter, Facade, Template Method, Chain of Responsibility e Proxy. 
 Adapter, Facade, Template Method, Command e Interpreter. 
 Memento, Strategy, Chain of Responsibility, Template Method e Memento. 
 Adapter, Facade, Decorator, Command e Adapter. 
 Facade, Adapter Template Method, Chain of Responsibility e Decorator. 
 
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. 
 É 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. 
 O nome do padrão é utilizado para agrupar ideias em um conceito. 
São definidos por especialistas de problemas e servem para aplicação direta em qualquer 
contexto. 
 É uma descrição nomeada de um problema e solução que pode ser aplicado em novos 
contextos 
 
 
 
 
(FUMARC - 2011) São padrões de projeto GoF (design patterns), EXCETO: 
 Visitor. 
 Strategy. 
 Facade. 
 Adapter. 
 Criador. 
 
(CESGRANRIO - 2010 - BACEN - Analista do Banco Central) Um arquiteto de software estuda 
que padrões de projeto são apropriados para o novo sistema de vendas de uma empresa. Ele 
deve considerar que o padrão : 
 Bridge separa 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. 
 Template Method utiliza compartilhamento para suportar, eficientemente, grandes 
quantidades de objetos de granularidade fina. 
 Singleton separa uma abstração de sua implementação, de modo que os dois 
conceitos possam variar de modo independente. 
Chain of Responsibility evita o acoplamento entre o remetente de uma solicitação e seu 
destinatário, dando oportunidade para mais de um objeto tratar a solicitação. 
 Builder garante que uma classe seja instanciada somente uma vez, fornecendo 
também um ponto de acesso global. 
 
Podemos afirmar que os Padrões Estruturais da família GoF: 
Definemcaminhos comuns para a organização de diferentes tipos de objetos, facilitando sua 
integração e colaboração mútua. 
 São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
 Colocam em dúvida o tratamento dispensado aos usuários na fase de levantamento 
das necessidades. 
 Aumentam a responsabilidade do programador em depurar o código e as rotinas 
necessárias à documentação dos processos. 
 Fornecem um guia de como instanciar objetos, que normalmente envolve decisões 
dinâmicas para escolher, por exemplo, qual classe instanciar ou a quais objetos delegar 
responsabilidade. 
 
 
 
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 
 DTO 
 Business Object 
 DAO 
 MVC 
 Application Service 
 
Sobre padrão, o que podemos afirmar: 
Definimos como maneira testada ou documentada de alcançar um objetivo qualquer, e é 
muito utilizado em varias áreas da engenharia. 
 Definimos como experiências praticas sem ter documentação, e é muito utilizado em 
varias áreas da engenharia. 
 Definimos pratica testada ou documentada de alcançar um objetivo qualquer, e que 
nunca mais é usada pois as situações não se repetem. Não é muito utilizado em áreas da 
engenharia. 
 Definimos como forma, em experimento provisório, pela comunidade acadêmica da 
área sem documentação e é muito utilizado em varias áreas da engenharia. 
 Definimos a maneira teórica de alcançar um objetivo qualquer, e, por isso, não tem 
muito uso para áreas da engenharia. 
 
considerando a classe de projetos GoF assinalem a opção cujos padrões de projeto estão 
todos classificados como Comportamentais 
 Command,- bridge, - Iterator, - Mediator, - Observer, State, Strategy 
 Command,- bridge, - Iterator, - Mediator, - composite - State, Strategy 
 Command,- bridge, - Iterator, - Mediator, bridge, State, Strategy 
 Command,- Interpreter, - Iterator, - Mediator, - composite , State, Strategy 
 Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy 
 
 
1) A empresa XWebx foi contratada para desenvolver aplicativos de uma instituição 
financeira que possam ser executados em diferentes plataformas, como PC, celular e tablet. 
Para evitar a necessidade de criar diferentes soluções para cada plataforma, a empresa 
decidiu adotar um padrão de projeto que defina uma família de componentes para cada 
plataforma e uma implementação que os instancie de acordo com a plataforma-alvo na qual 
a aplicação estará sendo executada. O padrão adequado a essa implementação é: 
 Adapter 
 Abstract Factory 
 Prototype 
 Template Method 
 Strategy 
 
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 
 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 
 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. 
 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 
 
Qual o padrão Gof representado na figura abaixo? 
Factory Method 
 Builder 
 Abstract Factory 
 Façade 
 Singleton 
 
(ESAF - 2005 - Receita Federal - Auditor Fiscal da Receita Federal - Área Tecnologia da 
Informação) Analise as seguintes afirmações relacionadas a padrões de projetos: I. O padrão 
Builder separa a construção de um objeto complexo de sua representação, de modo a que o 
mesmo processo de construção possa criar diferentes representações. II. O método Abstract 
Factory fornece uma interface para a criação de uma família de objetos relacionados ou 
dependentes sem especifi car suas classes completas. III. O padrão Bridge defi ne uma 
interface para criar um objeto, mas deixa as subclasses decidirem que classe será 
instanciada. O Bridge permite a uma classe postergar a instanciação das subclasses. IV. O 
Chain of responsability usa compartilhamento para suportar grandes quantidades de objetos 
e define uma dependência um-para-muitos entre objetos, de modo que quando um objeto 
muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. 
Indique a opção que contenha todas as afirmações verdadeiras. 
 II e IV 
 II e III 
 I e II 
 III e IV 
 I e III 
 
Conhecido como padrões da guangue dos quatro, os padrões GoF estão classificados em: 
 
Padrões estruturais, padrões de comportamento e padrões de fábrica. 
Padrões de criação, padrões estruturais e padrões comportamentais. 
Padrões de criação, padrões de composição e padrões comportamentais. 
Padrões de Interpretação, padrões de observação e padrões estruturais. 
Padrões estruturais, padrões de emocionais e padrões de fábrica. 
 
Qual padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem 
que classe instanciar? 
Factory Method. 
 Builder. 
 Nenhuma das anteriores. 
 Abstract Factory. 
 Singleton. 
 
Quanto aos design patterns, é correto afirmar que: 
 são projetos concretos que incluem detalhes de implementação. 
 a UML pode ser utilizada para representar frameworks, mas não é tão ampla ao ponto 
de oferecer suporte à representação dos design patterns. 
descrevem melhores práticas, bons projetos, e captam a experiência de uma maneira 
possível de ser usada por outros. 
 o maior problema com a utilização dos design patterns é que eles não suportam o uso 
de ferramentas CASE e podem trazer erros provenientes da percepção de quem os criou. 
 são conjuntos de classes abstratas e concretas que podem ser adaptadas e ampliadas 
para criar sistemas de aplicações. 
 
Qual o objetivo dos Padrões Estruturais? Assinale a opção CORRETA. 
Envolve decisões dinâmicas para escolher qual classe instanciar. 
Definem a quais objetos delegar responsabilidade. 
Mostram como estruturar e encapsular essas decisões. 
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. 
 
Existe um padrão GOF para implementar uma árvore de itens e tratar todos os nós, folhas ou 
não, de maneira uniforme. Implemente classes que representem um sistema de arquivos, 
com pastas e arquivos. Pastas possuem nome e diversos arquivos e subpastas. Arquivos 
possuem nome e tamanho em KB. Seu programa deve navegar pela árvore e imprimir seus 
itens e tamanhos. 
 
O texto está se referindo a qual padrão de projeto? 
 
 Creator 
 Façade 
 Builder 
 Composite 
 Decorator 
 
 
Escolha a opção que contem, somente, padrões de interface, segundo Metsker:: 
 Adapter, Facade, Composite e Bridge 
 Adapter, Decorator, Composite e Bridge 
 Abstract Factory, Facade, Composite e Bridge 
 Decorator, Facade, Composite e Bridge 
 Adapter, Facade, Composite e Builder 
 
 
Os padrões de criação correspondem a: 
Todas as alternativas estão erradas. 
Adapter, Bridge, Composite, Interpreter, Iterador 
Chain of Responsability, command, Interpreter, Iterador, Mediator, Memento, Observer, State, 
Strategy, Template Method e Visitor 
Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. 
Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
 
 
Qual padrão é de arquitetura? 
 Flower 
 MVC 
 GoF 
 Gamma 
 GRASP 
Observandoo diagrama de classes abaixo, verificamos a aplicação de um padrão de criação 
GOF.Qual padrão foi utilizado para organizar as classes? 
 Strategy 
 Template Method 
 State 
 Abstract Factory 
 Singleton 
 
Quais dos padrões abaixo corresponde aos padrões de criação. 
Abstract Factory, Builder, Factory Method 
 Chain of Responsibility, Command, Iterator 
 Adapter, Bridge, Composite. 
 Mediator, Memento, Observer 
 Singleton, Strategy, Template Method 
 
 
 
Como a adoção de um padrão de projeto pode auxiliar o desenvolvimento de software? 
 Alterando a forma com que os objetos são criados e transformar a criação de objetos 
uma função específica de classes herdadas 
 Por meio da aplicação obrigatória de ao menos um dos padrões GOF 
 Por meio da adoção de qualquer padrão, desde que seja um dos que foram aceitos 
pela comunidade internacional 
 Alterando o meio de acessar classes por meio de Interfaces e Dependências 
Por meio da sugestão de melhorias nos acessos e estruturação de situações problemáticas 
 
Especificar os tipos de objetos a serem criados usando uma instância como protótipo e criar 
novos objetos ao copier este protótipo. Para qual padrão de projeto a afirmação se 
relaciona? 
 
 Nra 
 Memento 
 Adapter 
 Observer 
 Abstract Factory 
 
(CESGRANRIO - 2008 - BNDES - Profissional Básico - Especialidade - Análise de Sistemas) Ao 
alterar o estado de uma classe, o desenvolvedor deseja que uma ou mais classes da interface 
gráfica sejam modificadas. Entretanto, o desenvolvedor não acha interessante criar um 
acoplamento forte entre essas classes. Qual padrão de projeto comportamental é mais 
adequado para resolver essa situação? 
 Observer 
 Adapter 
 Decorator 
 Composite 
 Abstract Factory 
 
 
(FESMIP-BA - 2011) Segundo a classificação de Design Patterns apresentada pela GoF, 
identifique com V os padrões comportamentais e com F, os demais. 
 
( ) Observer. 
( ) Iterator. 
( ) Façade. 
( ) Composite. 
( ) Visitor. 
 
A alternativa que contém a sequência correta, de cima para baixo, é a 
 F V V V F 
 V V V V V 
 F F V V V 
 V V F F V 
 V F F V F 
 
Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve ser 
utilizado o padrão Factory Method? 
Quando o algoritmo de criação de um objeto deve ser independente das suas partes 
constituintes e da maneira como ele é "montado". 
 Quando uma classe (o criador) não pode antecipar a classe dos objetos que deve criar. 
 Quando classes delegam responsabilidade para uma entre várias subclasses de apoio. 
 Quando uma classe quer que suas subclasses especifiquem os objetos criados. 
 Quando se quer localizar num ponto único a conhecimento de qual subclasse está 
sendo usada. 
 
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 - Estrutural, III - Criacional 
 I - Comportamental, II - Criacional, III - Estrutural 
 I - Criacional, II - Comportamental, III - Estrutural 
 I - Criacional, II - Estrutural, III - Comportamental 
 I - Estrutural, II - Comportamental, III – Estrutural 
Segundo Metsker, a classificação dos padrões GoF se divide em: 
 Interface, construção, responsabilidade, operações e especializações 
 Interface, construção, decisão, operações e extensões 
 Interface, construção, responsabilidade, operações e extensões 
 Interface, interação, responsabilidade, operações e extensões 
 Interface, construção, responsabilidade, metodologia e extensões 
 
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 II e III estão corretas 
 Todas as sentenças estão corretas 
 Apenas as sentenças I e III estão corretas 
 Apenas as sentenças I e II estão corretas 
 Apenas a sentença II está correta 
 
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 
 Apenas as sentenças I e II estão corretas 
 Apenas as sentenças I e III estão corretas 
 Apenas as sentenças II e III estão corretas 
 Apenas a sentença II está correta 
¿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: 
Model, View, Control 
Padrões Estruturais 
Padrões Comportamentais 
Padrões de Criação 
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 
 
 
1,5,2,3,4 
5,1,3,2,4 
5,1,3,4,2 
4,1,5,3,2 
4,5,1,2,3 
 
Um design pattern descreve uma solução geral comprovada e reutilizável para um problema 
recorrente no desenvolvimento de sistemas de software orientados a objetos. Padrões de 
projeto ajudam a reconhecer e implementar boas soluções para problemas comuns. Dois dos 
principais design patterns utilizados atualmente são descritos a seguir: I. Visa garantir que 
uma classe só tenha uma única instância e prover um ponto de acesso global a ela. II. Visa 
definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar 
de estado os seus dependentes sejam notificados e atualizados automaticamente. 
Os design patterns descritos em I e II são, respectivamente: 
 Singleton e Command. 
 Facade e Adapter. 
 Facade e Observer. 
 Composite e Adapter 
 Singleton e Observer. 
 
(ESAF - 2005) Analise as seguintes afirmações relacionadas a padrões de projetos: 
I. O padrão Builder separa a construção de um objeto complexo de sua representação, de 
modo a que o mesmo processo de construção possa criar diferentes representações. 
II. O método Abstract Factory fornece uma interface para a criação de uma família de 
objetos relacionados ou dependentes sem especifi car suas classes completas. 
III. O padrão Bridge defi ne uma interface para criar um objeto, mas deixa as subclasses 
decidirem que classe será instanciada. O Bridge permite a uma classe postergar a 
instanciação das subclasses. 
IV. O Chain of responsability usa compartilhamento para suportar grandes quantidades de 
objetos e define uma dependência um-para-muitos entre objetos, de modo que quando um 
objetomuda de estado, todos os seus dependentes são automaticamente notificados e 
atualizados. 
Indique a opção que contenha todas as afirmações verdadeiras. 
 I e II 
 II e IV 
 II e III 
 I e III 
 III e IV 
 
Por que usar Padrões de Projeto? 
 Os padrões de projeto servem para alcançar objetivos na engenharia de software 
usando implementações ou códigos fontes feitos em linguagens orientadas a objeto. 
 Os padrões de projeto não nos servem para alcançar objetivos na engenharia de 
software usando classes e métodos em linguagens orientadas a objeto. 
 Os padrões de projeto servem para alcançar objetivos na engenharia de software 
usando procedures e funções em linguagens de programação. 
 Os padrões de projeto não servem para alcançar objetivos diversos na engenharia e se 
utilização de linguagens orientadas a objeto. 
Os padrões de projeto servem para alcançar objetivos na engenharia de software usando 
classes e métodos em linguagens orientadas a objeto. 
 
 
(2017 - IESES - CREA-SC) Assinale a alternativa que define corretamente o conceito de Design 
Patterns: 
 ¿Uma solução para um problema independentemente de um contexto¿ 
 ¿Uma prática não estruturada para solução de problemas independentemente de um 
contexto¿ 
 ¿Uma prática não estruturada para solução de problemas dentro de um determinado 
contexto¿ 
 ¿Um procedimento padrão para resolver problemas anteriormente desconhecidos 
dentro de um contexto genérico 
Uma solução para um problema dentro de um contexto¿ 
 
Sobre o que falava Erich Gamma quando o mesmo disse "Abstraem o processo de 
instanciação, ajudando a tornar o sistema independente da maneira que os objetos são 
criados, compostos e representados"? 
 
 GRASP 
 Padrões de Criação 
 Todos os padrões 
 Padrões Comportamentais 
 Padrões Estruturais 
 
 
 Analise as afirmações abaixo: 
I. Define uma dependência um para muitos entre objetos, de forma que, quando o objeto é 
alterado todos os seus dependentes são notificados e atualizados.. 
II. Dada uma linguagem define uma representação para a sua gramática juntamente com um 
interpretador. 
III. Agrega dinamicamente responsabilidades adicionais a um objeto. 
As afirrmações correspondem respectivamente a: 
 
 Interpreter, Observer, Decorator 
 Decorator, Interpreter, Observer 
 Observer, Decorator, Interpreter 
 Observer, Interpreter, Decorator 
 Interpreter, Observer, Decorator 
 
(Casa da Moeda - CESGRANRIO 2009) Em determinado sistema de análise estatística, é 
necessário definir uma dependência ¿um para muitos¿ entre objetos, de forma que quando 
um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados. 
Que padrão de projeto pode ser utilizado nessa situação? 
 Memento 
 Observer 
 JSON 
 Singleton 
 AJAX 
 
 
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 II. 
 Somente I e III. 
 I, II e III. 
 Somente II e III. 
 Somente II. 
 
Qual a função do Padrão de Method Factory? 
 Especifica os tipos de objetos a serem criados usando uma instância-protótipo e cria 
novos objetos pela cópia desse protótipo. 
 Nenhuma das alternativas 
 Fornece uma interface para criação de famílias de objetos relacionados ou 
dependentes sem especificar suas classes completas. 
 Separa a construção de um objeto complexo da sua representação de modo que o 
mesmo processo de construção possa criar diferentes representações. 
Define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe 
instanciar. O padrão permite adiar a instanciação para subclasses. 
 
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 projeto GoF (Gang of Four) pertencente a categoria dos padrões de 
criação. Baseado nesse contexto, assinale abaixo a única opção que informa corretamente 
qual foi o modelo dos padrões GoF de criação empregado no desenvolvimento das classes 
JAVA apresentada anteriormente: 
 Prototype (Protótipo). 
 Singleton. 
 Builder (Construtor). 
 Abstract Fatory (Fabrica abstrata). 
 Factory Method (Método de fabricação). 
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? 
Strategy. 
Façade. 
Builder. 
Factory Method. 
Template Method 
 
Analise as afirmações abaixo: 
 
I. Encapsula a escolha da classe concreta a ser utilizada na criação de objetos. 
II. Especifica os tipos de objetos a serem criados usando protótipo de objetos 
III. Garante que uma classe tem somente uma instância; 
As afirrmações correspondem respectivamente a: 
 Singleton, Abstract Factory, Factory Method 
 Factory Method, Abstract Factory, Singleton 
 Factory Method, Singleton, Abstract Factory 
 Abstract Factory, Factory Method, Singleton 
 Abstract Factory, Singleton, Factory Method 
 
Analise as afirmações:I. Para não perder tempo e dinheiro elaborando soluções diferentes para o mesmo 
problema, poderíamos escolher uma solução como padrão e adotá-la toda vez que o 
problema correspondente ocorrer. Além de evitar o retrabalho, facilitaríamos a comunicação 
dos desenvolvedores e o entendimento técnico do sistema. Daí surge o conceito de padrão 
de projeto ou design pattern. (www.k19.com.br - apostila K19-K51). 
 
II. Um padrão de projeto é uma solução consolidada para um problema recorrente no 
desenvolvimento e manutenção de software orientado a objetos. 
III. Um padrão de projeto é descrito basicamente com um sumário e uma solução. 
Assinale a alternativa correta: 
 
 Apenas está correta a afirmativa II; 
 Apenas está correta a afirmativa I; 
 Todas as afirmativas estão corretas; 
 Estão corretas as afirmativas I e III; 
 Estão corretas as afirmativas II e III; 
 
Uma das categoria que tradicionalmente se classificam os padrões de projeto: Padrões de 
criação cujo objetivo é: 
 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 
 Define formas de gerencia e combinar diferentes comportamentos. 
 Define formas de instanciar objetos delegando responsabilidades 
 Define como implantar um novo método em uma classe. 
 
São padrões de projeto GoF (design patterns), EXCETO: 
Workflow. 
Proxy. 
Strategy. 
Mediator. 
State. 
 
Qual padrão de criação está representado na figura abaixo? 
Abstract Factory 
 
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: 
 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) 
 Safe (seguro), 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) 
 
Uma das categoria que tradicionalmente se classificam os padrões de projeto :Padrões 
Comportamentais cujo objetivo é: 
 Defende formas de instanciar objetos delegando responsabilidades 
 Define a forma de organização dos objetos e sua colaboração mutua 
 Define como implantar um novo método em uma classe. 
 Define como implantar o mecanismo de herança em um grupo de objetos 
 Define formas de gerencia e combinar diferentes comportamentos. 
 
Qual o objetivo dos Padrões Comportamentais? Assinale a opção CORRETA. 
Envolve decisões dinâmicas para escolher qual classe instanciar. 
Fornecem um guia de como instanciar objetos. 
Mostram como estruturar e encapsular essas decisões. 
O objetivo dos Padrões 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. 
Definem a quais objetos delegar responsabilidade. 
 
Assinale a alternativa correta. As classes participantes do padrão de projeto Abstract Factory 
são: 
 AbstractFactory, Method Factory, AbstractProduct, ConcreteImplementation, Client 
 AbstractFactory, Concrete Factory, AbstractProduct, ConcreteProduct, Client 
 nenhuma das alternativas 
 InterfaceFactory, Concrete Implementaion, AbstractProduct, ConcreteProduct, Client 
 AbstractFactory, Concrete Factory, AbstractProduct, ConcreteProduct, Main 
 
Padrões de projeto são voltados para que tipo de problemas? Assinale a resposta 
INCORRETA. 
Problemas que ocorrem no nosso dia-a-dia. 
Problemas na área de desenvolvimento de software. 
Problemas recorrentes. 
Problemas eu qualquer área de conhecimento. 
Problemas que não se repetem. 
 
Quais são os grupos de padrões de projeto GoF - Gang of Four - Gangue dos Quatro? 
 
 
Padrões de Abstração, Padrões Construçãos e Padrões de Composições. 
Padrões de Abstração, Padrões Estruturais e Padrões Comportamentais. 
Padrões de Criação, Padrões Estruturais e Padrões de Composições. 
Padrões de Criação, Padrões de Construção e Padrões Comportamentais. 
Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
 
 
Os padrões de projeto podem ser categorizados em três grupos: criação, estruturais e 
comportamentais. São padrões do grupo estrutural e do grupo criação,respectivamente: 
 singleton e façade 
 builter e abstract factory. 
Certo facade e singleton 
 abstract factory e composite. 
 observer e bridge 
 
Os padrões de projeto (Design Patterns) GoF são classificados nas categorias: 
 Situacional. Estrutural. Complementar. 
 Compartimental. Vinculada. Comportamental. 
 Criacional. Evolutiva. Contingencial. 
 Criacional. Step-by-step. Orientada a requisitos. 
 Criacional. Estrutural. Comportamental. 
 
(FCC-2011) Os design patterns 
 consistem em conjuntos de classes que um usuário instancia para utilizar seus 
métodos. Após a chamada ao método, o controle do fluxo da aplicação retorna para o usuário. 
 são de uso exclusivo em processos de desenvolvimento de soluções orientado a 
objetos, já que os objetos são a mais adequada abstração para o reúso. 
 são aplicações propriamente ditas, normalmente construídas pela integração de 
diversos frameworks. 
 são projetos de arquitetura para um domínio específico de aplicação e sempre trazem 
componentes predefinidos que envolvem código de programação. 
podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de 
modelar pa- drões de projeto representando-os como colaborações. 
 
O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes 
quantidades de objetos, de granularidade fina, de maneira eficiente, é denominado 
 Strategy 
 Builder 
 Composite 
 State 
 Flyweight 
 
(FGV ¿ 2016) A empresa SOFTPRONTO foi contratada para desenvolver aplicativos de uma 
instituição financeira que possam ser executados em diferentes plataformas, como PC, 
celular e tablet. Para evitar a necessidade de criar diferentes soluções para cada plataforma, 
a empresa decidiu adotar um padrão de projeto que defina uma família de componentes 
para cada plataforma e uma implementação que os instancie de acordo com a plataforma-
alvo na qual a aplicação estará sendo executada. O padrão adequado a essa implementação 
é: 
 Adapter 
 Abstract Factory 
 Template Method 
 Strategy 
 Prototype 
 
 
O modelo GoF (Gang of Four) são padrões de projeto de software com 23 modelos (ou 
soluções) de soluções para o desenvolvimento de algoritmos baseados no paradigma 
orientado a objetos. Esses modelos são classificados em subcategorias com propósitos 
comuns. Sabendo disso, assinale apenas uma das opções abaixo que é uma afirmativa 
verdadeira sobre os padrões GoF: 
 
Os modelos dos padrões GoF são agrupados em três categorias, sendo-as: Padrões de 
Criação, Padrões Estruturais e Padrões Comportamentais. 
 Os modelos dos padrões GoF são agrupados em duas categorias, sendo-as: Padrões de 
Criação e Padrões Comportamentais. 
 Os modelos dos padrões GoF são agrupados em duas categorias, sendo-as: Padrões 
Estruturais e Padrões Comportamentais. 
 Os modelos dos padrões GoF são agrupados em três categorias, sendo-as: Padrões de 
Criação, Padrões Estruturais e Padrões Organizacionais. 
 Os modelos dos padrões GoF são agrupados em quatros categorias, sendo-as: Padrões 
de Criação, Padrões Estruturais, Padrões Organizacionais e Padrões Comportamentais. 
 
Qual padrão fornece uma interface para criação de famílias de objetos relacionados ou 
dependentes sem especificar suas classes completas? 
 Builder. 
 Abstract Factory. 
 Nenhumadas anteriores. 
 Factory Method. 
 Adapter. 
 
Além dos benefícios tradicionais relacionados com produtividade, redução do tempo de 
desenvolvimento e reaproveitamento de soluções passadas, a utilização de padrões de 
projeto pode contribuir ainda nos seguintes aspectos? Assinale a opção INCORRETA. 
Auxiliam na aprendizagem a partir da documentação de experiências passadas. 
Auxiliam os analistas e desenvolvedores a melhor utilizar as práticas tradicionais de análise e 
projeto orientado a objetos, tais como abstração, encapsulamento, herança, polimorfismo. 
Auxiliam no refatoramento da aplicação. 
Auxiliam representar algoritmos como objetos, estruturas de classe ou objeto. 
Auxiliam programadores inexperientes a desenvolverem soluções mais elegantes, melhor 
documentadas, padronizadas e reutilizáveis. 
 
 
 
 
 
Aula 2 - PADRÕES DE CRIAÇÃO GOF 
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. 
 BUILDER. 
 FACTORY METHOD. 
 MEDIATOR. 
 SINGLETON. 
 
 
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. 
 Qualquer linguagem orientada a objeto. 
 C ++; 
 HTML; 
 JAVA; 
 ASSENBLY; 
 
O padrão Builder é um Padrão de Criação GoF. Com relação aos seus objetivos podemos 
afirmar que: 
I- O padrão Builder é um padrão utilizado na instanciação de objetos complexos. 
II- O padrão Builder tem a função de tentar minimizar a carga que os desenvolvedores têm 
ao ato de criar objetos dentro de um construtor. 
III- O padrão Builder é bastante útil para guardar o estado de um objeto em determinados 
momentos. 
Est(á)ão correta(s) a(s) afirmativa(s): 
Somente os itens II e III; 
Somente os itens I e II; 
Somente o item I; 
Somente os itens I e III; 
Somente o item II; 
Sobre o padrão ¿Builder ¿, escolha a opção que descreve seu(s) objetivo(s): 
 Separar a construção de um objeto complexo de sua representação para que o mesmo 
processo de separação criar representações iguais mas com serviços diferentes. 
 Unir a construção e implementação, de um objeto complexo, de sua representação 
para que o mesmo processo de instanciação possa criar representações diferentes. 
 Separar a construção de um objeto que seja bem simples de sua representação para 
que o mesmo processo de construção possa criar representações iguais. 
Separar a construção de um objeto complexo de sua representação para que o mesmo 
processo de construção possa criar representações diferentes. 
 Concatenar a construção de um objeto complexo de sua representação para que o 
mesmo processo de construção possa criar representações diferentes. 
 
O padrão de projeto Singleton é usado para restringir: 
 As relações entre classes e objetos 
 São A instanciação de uma classe para objetos simples. 
 A instanciação de uma classe para apenas um objeto 
 A quantidade de classes. 
 Um Classes de atributos complexos. 
 
(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. 
 Abstract Factory. 
 Builder. 
 Prototype. 
 Factory Method. 
 
i) Decorator permite anexar responsabilidades adicionais a um objeto dinamicamente. 
 
ii) Builder desacopla uma abstração de sua implementação para que os dois possam variar 
independentemente. 
 
iii) Mediator fornece um substituto ou ponto através do qual um objeto possa controlar o 
acesso a outro. 
 
Em relação aos itens acima está correto: 
somente a i 
 somente a ii 
 somente a iii 
 somente a i e ii 
 somente a ii e iii 
 
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. 
 Decorator; 
 Singleton 
 Builder; 
 Prototipe: 
 Composite; 
 
 
 
 
Analise as afirmativas abaixo, com relação aos padrões de projeto, e marque a opção 
correta. 
I - O Singleton é um padrão que garante que uma classe tenha apenas uma instância. 
II - Alguns padrões de criação como o Prototype, o Proxy e o Façade não são adequados para 
a programação orientada a 
objetos. 
III - Adapter é um padrão estrutural utilizado para compatibilizar interfaces de modo que 
elas possam interagir. 
 
 Todas as afirmativas estão incorretas 
 Apenas I está correta 
 Apenas I e II estão corretas 
 Apenas I e III estão corretas 
 Todas as afirmativas estão corretas 
 
Qual o objetivo do padrão Builder? Assinale a opção INCORRETA. 
Minimizar a carga que os desenvolvedores têm ao ato de criar objetos dentro de um 
construtor. 
Separar a construção de um objeto complexo da sua representação de modo que o mesmo 
processo de construção possa criar diferentes representações. 
É utilizado na instanciação de objetos complexos. 
Atribuir a responsabilidade de criação do objeto complexo a outra classe. 
Declara um método chamado clone na superclasse abstrata do modelo. 
 
O padrão de projeto Singleton é um dos padrões mais conhecidos e extensivamente 
utilizados em programação orientada a objetos. Sobre ele podemos afirmar I - Está 
direcionado para as situações onde precisamos manter uma única instancia de uma classe 
durante toda a execução da aplicação. II - A sua estrutura é bastante simples, existe apenas 
uma classe chamada Singleton, que define um método chamado Instance, responsável poder 
retornar aos clientes à única instancia da classe. III ¿ Na linguagem Java os modificadores 
states e private devem garantir uma mesma instância para todos os objetos criados e evitar 
acesso público; 
 As afirmativas I, III, estão corretas e II errada 
 As afirmativas I, II, III estão incorretas 
 As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 As afirmativas estão todas corretas 
 As afirmativas II, III estão corretas e a afirmativa I está errada. 
(CESGRANRIO - 2006 - Petrobrás ) Christopher Alexander afirma: "cada padrão descreve um 
problema no nosso ambiente e o cerne da sua solução, de tal forma que você possa usar 
essa solução mais de um milhão de vezes, sem nunca faze-lo da mesma maneira". Muito 
embora Alexander estivesse falando a cerca de padrões em construções e cidades, o que ele 
diz é verdadeiro em relação aos padrões deprojeto orientados a objeto. Neste caso, as 
soluções são expressas em termos de objetos e interfaces em vez de paredes e portas, mas 
no cerne de ambos os tipos de padrões está a solução para um problema num determinado 
contexto. Quanto à indicação para o uso dos padrões de projeto é FALSO afirmar que o 
padrão: 
 Abstract Factory é indicado quando: um sistema deve ser independente de como seus 
produtos são criados, compostos ou representados; um sistema deve ser configurado como 
um produto de uma família de múltiplos produtos; uma família de objetos-produto for 
projetada para ser usada em conjunto, e você necessita garantir esta restrição; você quer 
fornecer uma biblioteca de classes de produtos e quer revelar somente suas interfaces, não 
suas implementações. 
 Composite é indicado quando: quiser representar hierarquias partes-todo de objetos; 
quiser que os clientes sejam capazes de ignorar a diferença entre composições de objetos e 
objetos individuais, neste caso, os clientes tratarão todos os objetos na estrutura composta de 
maneira uniforme. 
 Memento é indicado quanto: um instantâneo de estado de um objeto deve ser salvo 
de maneira que possa ser restaurado para esse estado mais tarde; uma interface direta para 
obtenção do estado exporia detalhes de implementação e romperia o encapsulamento do 
objeto. 
 Mediator é indicado quando: um conjunto de objetos se comunica de maneiras bem 
definidas, porém complexas; a reutilização de um objeto é difícil porque ele referencia e se 
comunica com muitos outros objetos; um comportamento que está distribuído entre várias 
classes deveria ser customizável, ou adaptável, sem excessiva especialização em subclasses. 
Builder é indicado quando: uma classe não pode antecipar a classe de objetos que deve criar; 
uma classe quer que suas subclasses especifiquem os objetos que criam; classes delegam 
responsabilidade para uma dentre várias subclasses auxiliares, e você quer localizar o 
conhecimento de qual subclasse auxiliar que é a delegada. 
 
 
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 I, II, III estão incorretas 
 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 estão todas corretas 
 
O padrão Prototype é um Padrão de Criação GoF. Com relação aos seus objetivos podemos 
afirmar que: 
I- O padrão de projeto Prototype declara um método chamado clone na superclasse abstrata 
do modelo. 
II- O padrão Prototype tem a função de tentar minimizar a carga que os desenvolvedores 
têm ao ato de criar objetos dentro de um construtor. 
III- O padrão Prototype é 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 o item I; 
Somente o item II; 
Somente os itens I e III; 
Somente os itens II e III; 
 
O padrão Singleton é um Padrão de Criação GoF. A estrutura desse padrão utiliza alguns 
recursos. Assinale o único recurso que NÃO pertence a esse padrão. 
Modificadores static e private para garantir uma mesma instância para todos os objetos 
criados e evitar acesso público; 
Declarar o método getInstance como synchronized para que o método seja executado por uma 
thread por vez, quando utilizado em programas multi-thread; 
Modificando as aplicações para este padrão de projeto para que a facilidade de instanciar 
classes em tempo de execução possa acontecer; 
Modificar static para implementar o método getInstance e, assim, retornar a instancia 
apropriada ou criá-la, caso seja a primeira vez; 
Construtor da classe privado, para não permitir a instância de novos objetos da classe; 
 
 
 
¿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. 
 Facade 
 Singleton 
 Abstract Factory 
 Factory Method 
 Builder 
 
O padrão Singleton é um Padrão de Criação GoF. A grande vantagem deste padrão é: 
Assinale a única resposta CORRETA. 
Difícil de testar (simulações dependem de instância extra); 
Criação "preguiçosa" é complicada em ambiente multithreaded; 
Difícil ou impossível de implementar em ambiente distribuído; 
Acesso central e extensível a recursos e objetos; 
Qualidade da implementação depende da linguagem; 
 
Assinale a alternativa que indica o padrão correto. ¿Especifica os tipos de objetos a serem 
criados usando uma instância-protótipo e cria novos objetos pela cópia desse protótipo¿ 
 Bridge 
 nenhuma das alternativas 
 Prototype 
 Adapter 
 Singleton 
 
Qual padrão separa a construção de um objeto complexo da sua representação de modo que o 
mesmo processo de construção possa criar diferentes representações? 
 Prototype. 
 Singleton. 
 Builder. 
Factory Method. 
Nenhuma das anteriores. 
 
Qual padrão especifica os tipos de objetos a serem criados usando uma instância-protótipo e 
cria novos objetos pela cópia desse protótipo? 
 
 Nenhuma das anteriores. 
 Factory Method. 
 Abstract Factory. 
 Singleton. 
Prototype. 
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); 
 ..... 
 ..... 
 
 Prototype 
 Adapter 
 Singleton 
 Factory Method 
 Builder 
 
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 eliminar classes em tempo de execução; 
 facilidade de instanciar classes em tempo de programação; 
 facilidade de instanciar classes em tempo de geração do SGDB 
 facilidade de copiar classes em tempo de execução. 
 facilidade de instanciar classes em tempo de execução. 
 
Qual padrão garante que uma classe tem somente uma instância e fornece um ponto global 
de acesso a mesma? 
 Nenhuma das anteriores. 
 Factory Method. 
Singleton. 
 Builder. 
 Abstract Factory. 
 
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. 
 Builder 
 Abstract Factory 
 Decorator 
 Singleton 
 Prototype 
 
 
(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. 
 Iterator. 
 Bridge. 
 Memento. 
 
 
Acerca dos padrões de criação e de padrões estruturais, assinale a opçãocorreta. 
 São exemplos de padrões estruturais: Adapter, Façade, Proxy, Composite, Decorator e 
Chain of Responsibility. 
 Uma das consequências do uso do padrão Prototype é o aumento no uso de 
subclasses. 
 O padrão adaptador de classe (class adapter) facilita acomodar a adaptação de 
subclasses de uma classe previamente adaptada. 
Certo O uso do padrão singleton apresenta como consequências uma redução do 
uso de variáveis globais e uma melhor organização do espaço de nomes de um software 
orientado a objetos. 
 São participantes do padrão Façade: o cliente, o alvo, o adaptador e o adaptado. 
 
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. 
 
 
 FACADE. 
 SINGLETON. 
 FACTORY METHOD. 
 MEDIATOR. 
 BUILDER. 
 
 
Assinale a afirmativa correta sobre o padrão Builder: 
 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. 
 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. 
 é 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 
 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 
 
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 II; 
Somente os itens I e III; 
Somente o item I; 
 
(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. 
 Prototype. 
 Abstract Factory. 
 Builder. 
 Factory Method. 
 
 
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. 
 
 
MEDIATOR. 
 FACTORY METHOD. 
 SINGLETON. 
 BUILDER. 
 PROTOTYPE. 
 
 
AULA 3 - PADRÕES ESTRUTURAIS GOF (I) 
Qual padrão adicionais dinamicamente responsabilidades a um objeto e fornece uma 
alternativa flexível ao uso de subclasses para extensão de funcionalidades? 
 
 Façade. 
 Composite. 
 Builder. 
 Nenhuma das anteriores. 
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 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. 
 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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Qual padrão de projeto representado na figura abaixo? 
 
 Creator 
 High coehsion 
 Low coupling 
 Adapter 
 Chain of Responsability 
 
 
Qual o objetivo do padrão Compositer? Assinale a opção INCORRETA. 
Composite compõem objetos em estruturas de árvore para representar hierarquias todo-
parte. 
Composite permite que seja encapsulado os detalhes (como se eu falasse com um aluno ou 
com vários alunos da mesma forma), o que permite uma programação muito mais leve. 
Composite permite que clientes tratem objetos individuais e composições de objetos de 
maneira uniforme. 
Composite permite que o ganho que eu tenho com a programação para a interface seja 
enorme. 
Composite permite anexar responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. 
 
[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 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 foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes. 
 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. 
 
Qual padrão converte uma interface de uma classe em outra interface e permite que classes 
com interfaces incompatíveis trabalhem em conjunto? 
 
 Nenhuma das anteriores. 
 Bridge. 
 Decorator. 
 Adapter. 
 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. 
 Adapter 
 Façade 
 Proxy 
Composite 
 Bridge 
 
O padrão Adapter é um Padrão Estrutural GoF. Com relação aos seus objetivos podemos 
afirmar que: 
I- O padrão de projeto Adapter converte a interface de uma classe em outra interface 
esperada pelos clientes. 
II- O padrão Adapter permite a comunicação entre classes que não poderiam trabalhar 
juntas devido à incompatibilidade de suas interfaces. 
 
III- O padrão Adapter desacoplar uma abstração de sua implementação para que os dois 
possam variar independentemente. 
Est(á)ão correta(s) a(s) afirmativa(s): 
Somente o item II; 
Somente os itens II e III; 
Somente o item I; 
Somente os itens I e II; 
Somente os itensI e III; 
 
(2016 - COPEVE-UFAL) Na hierarquia dos componentes visuais da biblioteca Java AWT (do 
inglês, Abstract Window Toolkit), há containers e componentes. Containers, tais como os 
representados pelas classes Frame, Panel, Dialog e Applet agregam outros componentes, tais 
como os representados pelas classes Button e Label. Um container pode também conter sub-
containers. Logo, um container pode conter containers ou componentes. Qual o padrão de 
projeto que representa a estrutura de relacionamento entre as classes AWT? 
 Observer 
 Decorator 
 Strategy 
 Chain of Responsability 
 Composite 
Qual padrão desacopla uma abstração de sua implementação de modo que as duas possam 
variar independentemente? 
 
 Proxy. 
 Bridge. 
 Façade. 
 Nenhuma das anteriores. 
 Decorator. 
 
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 _____________________________. 
 Composite; 
 Associativa; 
 Beidge; 
 Adapter; 
 Decorator; 
 
Qual padrão compõe objetos em estruturas de árvore para representarem hierarquias 
partes-todos e permite aos clientes tratarem de maneira uniforme os objetos individuais e as 
composições de objetos? 
 Proxy. 
Nenhuma das anteriores. 
Composite 
 Flyweight. 
 Builder. 
Os padrões estruturais correspondem a: 
 Chain of Responsability, command, Interpreter, Iterador, Mediator, Memento, 
Observer, State, Strategy, Template Method e Visitor. 
 Todas as alternativas estão erradas 
 Abstract Factory, Builde, Factory Method, Prototype e Singleton. 
 Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. 
 Chain of Responsability, command, Interpreter, Decorator, Façade, flyweight 
 
Qual padrão GOF é usado no diagrama abaixo? 
 
 
 Singleton 
 FlyWeight 
Bridge 
 Composite 
 Decorator 
 
(FUNCAB - 2010) Segundo Trott e Shalloway, o princípio de projetar a partir de um contexto, 
é um conceito para criar a visão global antes de se projetar os detalhes que aparecem nos 
componentes. Das opções seguintes, o padrão de projeto que é um melhor exemplo de 
aplicação desse princípio é: 
 bridge 
 adapter 
 faça de 
 abstract factory 
 canvas 
 
O padrão Bridger é um Padrão Estrutural GoF. Quando devemos usar esse padrão? Assinale 
a opção INCORRAETA. 
Quando for necessário evitar uma ligação permanente entre a interface e implementação; 
Quando implementações são compartilhadas entre objetos desconhecidos do cliente; 
Quando alterações na implementação não puderem afetar clientes; 
Quando tanto abstrações como implementações precisarem ser capazes de suportar extensão 
através de herança; 
Quando houver uma interface que permita a implementação estática; 
 
 
Assinale a alternativa correspondente ao padrão de projeto utilizado para adicionar 
responsabilidades dinâmicas a objetos. 
 Bridge 
 Façade 
 Decorator 
 Composite 
 Adapter 
 
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 
 Bridge 
 Adapter 
 Composite 
 Decorator 
 
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: 
 Decorator e Observer 
 Observer e Decorator 
 Observer e Chain of Responsibility 
 Decorator e Chain of Responsibility 
 Chain of Responsibility e Decorator 
 
Qual é o padrão GoF estrutural correspondente ao código abaixo? 
public class Main { 
public static void main(String[] args) { 
Carro carro = new CrossFox(); 
System.out.println("Produto: " + carro.getProdutos()); 
System.out.println("Preço: R$ " + carro.getCusto()); 
 
// Adiconando Ar e Travas 
carro = new CarroComArCondicionado(carro); 
carro = new CarroComTravaEletrica(carro); 
System.out.println("Produto: " + carro.getProdutos()); 
System.out.println("Preço: R$ " + carro.getCusto()); 
} 
....... 
 Adapter 
 Bridge 
 Decorator 
 Mediator 
 Composite 
 
Qual padrão está representado na figura abaixo? 
 
 
 Proxy 
Bridge 
 Strategy 
 Composite 
 Façade 
 
 
 
Imagine que em meu sistema eu tenha uma classe compra, que para fazer o pagamento, 
utiliza o método Billing, e que esse método espera algo que herde de uma interface 
IPagamento. 
Cartão de crédito é uma classe abstrata que herda de IPagamento. 
Boleto é uma classe que herda de IPagamento. 
Visa e master são as implementações reais que utilizávamos, até então, para fazer o Billing 
dependendo do cartão que o cliente utilizava, e a propósito, elas herdam de 
CartaodeCredito. Segue o diagrama: 
 
Porém, a loja decide que vai ter mais um tipo de cartão de crédito, terá o 
¿Sorocred¿. 
O Analista logo pensa: ¿Tudo bem, é só eu herdar de CartaodeCredito, 
implementar a forma específica de Billing e pronto! ¿. 
Só que vem a surpresa: o cliente tem a própria Dll de Billing, que não pode 
ser alterada, ou pior: a estrutura de classe de ¿Sorocred¿ foi desenhada da 
seguinte maneira: 
 
 
 
 
Com qual padrão GOF, você resolverá o problema? 
 
 Strategy 
 Façade 
 Adapter 
 State 
 Singleton 
O padrão Composite é um Padrão Estrutural GoF. Com relação aos seus objetivos podemos 
afirmar que: 
I- O padrão de projeto Composite permite anexar responsabilidades adicionais a um objeto 
(em caráter dinâmico) dinamicamente. 
II- O padrão Composite permite que seja encapsulado os detalhes (como se eu falasse com 
um aluno ou com vários alunos da mesma forma), o que permite uma programação muito 
mais leve. 
III- O padrão Composite permite que clientes tratem objetos individuais e composições de 
objetos de maneira uniforme. 
Est(á)ão correta(s) a(s) afirmativa(s): 
Somente o item I; 
Somente os itens II e III; 
Somente o item II; 
Somente os itens I e II; 
Somente os itens I e III; 
 
Escolha a opção que descreve o objetivo do ¿Composite¿: 
 Compor objetos em estruturas de árvore para representar hierarquias todo-parte. O 
Composite permite que clientes tratem objetos individuais e composições de objetos de 
maneira uniforme. 
 Compor objetos em estruturas de árvore para representar heranças de classes 
abstratas, que serão instanciadas. O Composite permite que clientes tratem objetos 
individuais e composições de objetos de maneira uniforme. 
 Criar instancias de objetos em estruturas que representam hierarquias de dependência 
de plataforma de implementação. O Composite permite que clientes tratem objetos distintos, 
e as composições, desses objetos de maneira parecidas. 
 Compor objetos em estruturas sequenciais para representar hierarquias de herança 
aplicada. O Composite permite que clientes tratem objetos individuais e composições de 
objetos de maneira uniforme. 
 Compor objetos em estruturas de árvore para representar hierarquias todo-parte. 
Composite permite que clientes tratem objetos em grupo e não objetos de maneira uniforme. 
 
 
A classe java.util.Map da API de coleções de Java permite que sejam armazenados pares de 
objetos (chave e valor) em uma de suas implementações (as mais conhecidas são HashMap e 
TreeMap). No entanto, estas classes não possuem um construtor que receba como 
parâmetro uma matriz de duas linhas e que monte o mapa usando a primeira linha como 
chave e a segunda como coluna. 
Qual padrão utilizar para resolver o problema acima? 
Interpreter 
Adapter 
Observer 
iterator 
Chain of Responsibility 
 
Dado o diagrama de classe identifique o padrão GoFestrutual: 
 Decorator 
 Flyweight 
 Proxy 
 Composite 
 Facade 
 
Qual o padrão Gof utilizado na figura abaixo? 
 
 
 Adapter 
 Singleton 
 Observer 
 Composite 
 Façade 
 
Qual padrão observamos no diagrama de classes abaixo? 
 Composite 
 FlyWeight 
 Bridge 
 Prototype 
 Decorator 
 
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? 
 Façade 
 Decorator 
 Strategy 
 State 
 Observer 
 
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. 
 Um programador precisa de um método que simplifique o acesso a uma hierarquia de 
classes. 
 Um programador precisa ser avisado quando houver alterações no estado de um 
objeto. 
 Um programador precisa de uma classe que possua um método para retornar a única 
instância existente da classe. 
 Um programador precisa utilizar uma classe que possui a mesma interface da classe 
existente na aplicação. 
 
Qual o objetivo do padrão Decorator? Assinale a opção CORRETA. 
Decator permite que o ganho que eu tenho com a programação para a interface seja enorme. 
Decorator permite que seja encapsulado os detalhes (como se eu falasse com um aluno ou 
com vários alunos da mesma forma), o que permite uma programação muito mais leve. 
Decorator compõem objetos em estruturas de árvore para representar hierarquias todo-parte. 
Decorator permite anexar responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. 
Decorator permite que clientes tratem objetos individuais e composições de objetos de 
maneira uniforme. 
 
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: 
 Memento 
 Composite 
 TreeView 
 Bridge 
 Decorator 
 
 
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: 
 Objeto complexo pode necessitar da criação de objetos menores previamente, com 
certo controle difícil de implementar com construtores 
 Não é preciso saber a classe concreta do objeto para criá-lo 
 Usando diretamente os métodos construtores não há como limitar o número de 
instâncias criadas 
 A aplicação cliente fica acoplada diretamente a uma implementação concreta para 
poder usar diretamente o construtor 
 Cliente pode não ter ou não saber todos os dados necessários para instanciar um 
objeto através de construtores 
 
Analise as afirmações abaixo: 
I. Desacopla uma abstração de sua implementação, de modo que as duas possam variar 
independentemente. 
II. Compõe objetos em estuturas de árvores que representam hieráquia todo parte. 
III. Fornece uma interface simples para uma coleção de classes. 
As afirrmações correspondem respectivamente a: 
 Façade, Composite, Bridge 
 Bridge, Composite, Façade 
 Façade, Bridge, Composite 
 Composite, Façade, Bridge 
 Composite, Bridge, Façade 
[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. 
 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 Bridge estabelece uma ponte entre uma abstração e suas possíveis implementações. 
 O foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes. 
 Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto 
para outro objeto. 
 
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 
 Bridge 
 Adapter 
 Façade 
 Composite 
 
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; 
 Beidge; 
 Adapter; 
 
 
 
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 Composite 
 Padrão Decorator 
 Padrão Flyweight 
 Padrão Adapter 
 
Qual padrão está representado na figura abaixo? 
 
Strategy 
Bridge 
Proxy 
Façade 
Composite 
 
Dado o diagrama de classe identifique o padrão GoF estrutual: 
 
 Proxy 
 Composite 
 Facade 
 Flyweight 
 Decorator 
 
 
Qual padrão observamos no diagrama de classes abaixo? 
 
 
 Prototype 
 FlyWeight 
 Composite 
 Decorator 
 Bridge 
 
 
Aula 4 - PADRÕES ESTRUTURAIS GOF (II) 
 
Qual o padrão fornece um substituto ou marcador para controlar o acesso a um objeto? 
 
 Nenhuma das anteriores. 
 Adapter. 
 Proxy. 
 Façade. 
 Bridge. 
 
(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. 
 Strategy. 
 Builder. 
 State. 
 Flyweight. 
 
Qual padrão fornece uma interface unificada para um conjunto de interfaces em um 
subsistema e define uma interface de nível mais alto que torna o subsistema mais fácil de ser 
usado? 
 Adapter. 
 Nenhuma das anteriores. 
 Façade. 
 Composite. 
 Decorator. 
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 
 Fachada 
 Observer 
 Singleton 
 Decorator 
 
Qual padrão de projeto tem como propósito prover interface unificada para conjunto de 
interfaces em um subsistema, definindo uma interface de alto-nível. 
 Factory Method 
 Facade 
 Strategy 
 Singleton 
 Decorator 
O padrão _________________ controla o acesso ao objeto original. Fornece um substituto 
ou marcador da localização de outro objeto para controlar o seu acesso. 
Qual padrão abaixo corresponde ao descrito acima? 
 Singleton 
 Adapter 
 Memento 
 Proxy 
 Interpreter 
 
 
considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão todos 
classificados como Estruturais: 
 adapter ; bridge ; composite

Outros materiais