Buscar

PADRÕES DE PROJETO DE SOFTWARE-mesclado

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 45 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 45 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 45 páginas

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PADRÕES DE PROJETO DE SOFTWARE 
Lupa Calc. 
 
 
 
 
 
CCT0763_A1_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
 
 
1. 
 
 
Esses são padrões de projeto GoF estudados em aula, EXCETO: 
 
 
 
Strategy 
 
 
Facade 
 
 
Adapter 
 
Workflow 
 
 
Observer 
 
 
Gabarito 
Comentado 
 
 
 
 
 
 
 
 
 
2. 
 
 
Observando o 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 
 
 
State 
 
 
Template Method 
 
 
Singleton 
 
Abstract Factory 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
javascript:duvidas('772421','7168','1','5674640','1');
javascript:duvidas('1067507','7168','2','5674640','2');
 
 
 
 
 
 
3. 
 
 
(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 
 
 
V V V V V 
 
 
F V V V F 
 
V V F F V 
 
 
V F F V F 
 
 
F F V V V 
 
 
 
 
 
 
 
4. 
 
 
O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido como "Construtor Virtual" chama-se: 
 
 
 
Dependency Injection 
 
 
Business Delegate 
 
Factory Method 
 
 
Abstract Factory 
 
 
Template Method 
 
 
Gabarito 
Comentado 
 
 
 
 
 
 
 
 
 
5. 
 
 
(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 : 
 
 
Builder garante que uma classe seja instanciada somente uma vez, fornecendo também um ponto de acesso global. 
 
 
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. 
 
 
Gabarito 
Comentado 
 
 
 
 
 
 
 
 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('118991','7168','3','5674640','3');
javascript:duvidas('784412','7168','4','5674640','4');
javascript:duvidas('879612','7168','5','5674640','5');
javascript:duvidas('2820788','7168','6','5674640','6');
6. 
 
 
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? 
 
 Template Method. 
 
 Façade. 
 Strategy. 
 
 Factory Method. 
 
 Builder. 
 
 
 
Explicação: 
a) Builder 
Separar a construção de um objeto complexo de sua representação de modo que o mesmo processo de construção possa criar 
diferentes representações. 
b) Strategy 
Definir uma família de algoritmos, encapsular cada uma delas e torná-las intercambiáveis. Strategy permite que o algoritmo varie 
independentemente dos clientes que o utilizam 
c) Façade 
Fornecer uma interface unificada para um conjunto de interfaces em um subsistema. Facade define uma interface de nível mais 
alto que torna o subsistema mais fácil de ser usado. 
d) Template Method 
Definir o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses. Template Method permite 
que subclasses redefinam certos passo de um algoritmo sem mudar a estrutura do mesmo. 
 
Recomendo esta fonte para estudos de Padrões de Projeto: 
https://brizeno.wordpress.com/padroes/ 
 
 
 
 
 
 
 
7. 
 
 
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? 
 
 
Adapter 
 
 
Memento 
 
Nra 
 
 
Abstract Factory 
 
 
Observer 
 
 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('593617','7168','7','5674640','7');
 
 
 
 
8. 
 
 
(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. 
 
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. 
 
 
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. 
 
 
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. 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('118976','7168','8','5674640','8');
PADRÕES DE PROJETO DE SOFTWARE 
 
Lupa Calc. 
 
 
 
 
 CCT0763_A2_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
 
 
1. 
 
 
Acerca dos padrões de criação e de padrões estruturais, assinale a opção correta. 
 
 
 
Uma das consequências do uso do padrão Prototype é o aumento no uso de subclasses. 
 
 
São exemplos de padrões estruturais: Adapter, Façade, Proxy, Composite, Decorator e Chain of Responsibility. 
 
 
São participantes do padrão Façade: o cliente, o alvo, o adaptador e o adaptado. 
 
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. 
 
 
O padrão adaptador de classe (class adapter) facilita acomodar a adaptação de subclasses de uma classe previamente 
adaptada. 
 
 
 
Explicação: 
Os Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente 
envolve decisões dinâmicas para escolher, por exemplo, qual classe instanciar, ou a quais objetos 
delegar responsabilidade. Esse padrão nos mostra como estruturar e encapsular essas decisões. 
O padrão de projeto Singleton é um dos padrõesmais conhecidos e extensivamente utilizados 
em programação orientada a objetos. 
Está direcionado para as situações onde precisamos manter uma única instancia de uma classe 
durante toda a execução da aplicação. 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. 
 
 
 
 
 
 
 
2. 
 
 
Sobre o padrão ¿Builder ¿, escolha a opção que descreve seu(s) objetivo(s): 
 
 
 
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. 
 
 
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 complexo de sua representação para que o mesmo processo de construçã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. 
 
 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
javascript:duvidas('1032909','7168','1','5674640','1');
javascript:duvidas('1143557','7168','2','5674640','2');
O BUILDER é um Padrão de Criação. É um padrão cuja responsabilidade é a CONSTRUÇÃO 
Tentam minimizar a carga que os desenvolvedores têm ao ato de criar objetos dentro de um 
construtor. Isso é comum em desenvolvedores iniciantes. 
 
 
 
 
 
 
 
3. 
 
 
Assinale a afirmativa correta sobre o padrão Builder: 
 
 
 
Deve-se é embutir no construtor da própria classe a lógica para criação de um objeto ou ainda distribuir a lógica de 
criação em vários métodos adicionais. 
 
 
é 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 
 
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. 
 
 
A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida 
 
 
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. 
 
 
 
Explicação: 
O padrão Builder é um padrão de cuja intenção é a Construção, ou seja, são padrões cuja responsabilidade é a CONSTRUÇÃO 
O padrão Builder tenta minimizar a carga que os desenvolvedores tem ao ato de criar objetos dentro de um construtor. Isso é 
comum em desenvolvedores iniciantes. 
 
 
 
 
 
 
 
4. 
 
 
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 III; 
 
 
Somente o item I; 
 
 
Somente o item II; 
 
 
Somente os itens II e III; 
 
 
Somente os itens I e II; 
 
 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('107785','7168','3','5674640','3');
javascript:duvidas('2951780','7168','4','5674640','4');
O item II está errado porque ela se refere ao padrão Builder. 
 
 
 
 
 
 
 
5. 
 
 
Qual o objetivo do padrão Builder? Assinale a opção INCORRETA. 
 
 
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. 
 
Declara um método chamado clone na superclasse abstrata do modelo. 
 
 
É utilizado na instanciação de objetos complexos. 
 
 
Minimizar a carga que os desenvolvedores têm ao ato de criar objetos dentro de um 
construtor. 
 
 
Atribuir a responsabilidade de criação do objeto complexo a outra classe. 
 
 
 
Explicação: 
Essa afirmativa está INCORRETA porque ela se refere ao padrão Prototype. 
 
 
 
 
 
 
 
6. 
 
 
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. 
 
 
Singleton 
 
 
Decorator 
 
Prototype 
 
 
Builder 
 
 
Abstract Factory 
 
 
 
 
 
 
 
7. 
 
 
Qual padrão garante que uma classe tem somente uma instância e fornece um ponto global de acesso a mesma? 
 
 
 
Builder. 
 
 
Abstract Factory. 
 
 
Nenhuma das anteriores. 
 
Singleton. 
 
 
Factory Method. 
 
 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2951767','7168','5','5674640','5');
javascript:duvidas('692427','7168','6','5674640','6');
javascript:duvidas('912951','7168','7','5674640','7');
Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e 
Singleton. 
Esses Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente 
envolve decisões dinâmicas para escolher, por exemplo, qual classe instanciar, ou a quais objetos 
delegar responsabilidade. Esse padrão nos mostra como estruturar e encapsular essas decisões. 
O padrão de projeto Singleton é um dos padrões mais conhecidos e extensivamente utilizados 
em programação orientada a objetos. 
Está direcionado para as situações onde precisamos manter uma única instancia de uma classe 
durante toda a execução da aplicação. 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. 
Na linguagem Java os modificadores states e private devem garantir uma mesma instância para 
todos os objetos criados e evitar acesso público. 
 
 
 
 
 
 
 
8. 
 
 
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. 
 
 
Prototipe: 
 
 
Composite; 
 
 
Builder; 
 
Singleton 
 
 
Decorator; 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('728112','7168','8','5674640','8');
 
PADRÕES DE PROJETO DE SOFTWARE 
 
Lupa Calc. 
 
 
 
 
 CCT0763_A3_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
 
 
1. 
 
 
O padrão Bridger é um Padrão Estrutural GoF. Quando devemos usar esse padrão? Assinale a 
opção INCORRAETA. 
 
Quando houver uma interface que permita a implementação estática; 
 
 
Quando implementações são compartilhadas entre objetos desconhecidos do cliente; 
 
 
Quando tanto abstrações como implementações precisarem ser capazes desuportar 
extensão através de herança; 
 
 
Quando for necessário evitar uma ligação permanente entre a interface e implementação; 
 
 
Quando alterações na implementação não puderem afetar clientes; 
 
 
 
Explicação: 
Essa afirmativa está INCORRETA, porque ela se refere ao padrão Adapter. 
 
 
 
 
 
 
 
2. 
 
 
(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 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. 
 
 
Ambos são padrões estruturais que possuem alguns atributos em comum. 
 
 
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. 
 
 
 
Explicação: 
A família de padrões GoF, está divida em três grupos principais de padrões: Padrões de Criação, Padrões Estruturais e Padrões 
Comportamentais. 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
Há 7 (sete) tipos de padrões estruturais GoF: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. 
Há 11 padrões comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, 
State, Strategy, Template Method e Visitor. 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
javascript:duvidas('2952048','7168','1','5674640','1');
javascript:duvidas('119038','7168','2','5674640','2');
Essa opção está errada porque a classe Adapter é alusivo a estrutura, ou seja, estrutural. A ideia é fazer adaptação entre dois 
recursos. 
A classe Adapter converte a interface de uma classe em outra interface esperada pelos clientes. Adapter permite a comunicação 
entre classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces. 
 
 
 
 
 
 
 
3. 
 
 
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 
 
 
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 
 
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 
 
 
 
 
 
 
 
4. 
 
 
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: 
 
 
TreeView 
 
 
Bridge 
 
Composite 
 
 
Decorator 
 
 
Memento 
 
 
 
 
 
 
 
5. 
 
 
Qual padrão desacopla uma abstração de sua implementação de modo que as duas possam variar independentemente? 
 
 
 
Decorator. 
 
Bridge. 
 
 
Proxy. 
 
 
Nenhuma das anteriores. 
 
 
Façade. 
 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, 
Composite, Decorator, Façade, Flyweight e Proxy. 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('692426','7168','3','5674640','3');
javascript:duvidas('784354','7168','4','5674640','4');
javascript:duvidas('912957','7168','5','5674640','5');
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua 
integração e colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas 
complexas; associados à maneira como classes e objetos são organizados estruturalmente; 
oferecem formas efetivas para usar conceitos OO como herança e composição, e são abstrações 
de aspectos estruturais. 
O padrão Bridge, desacopla uma abstração de sua implementação, de tal forma que os dois 
possam variar independentemente. 
 
 
 
 
 
 
 
6. 
 
 
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 
 
Decorator e Chain of Responsibility 
 
 
Chain of Responsibility e Decorator 
 
 
Observer e Decorator 
 
 
Observer e Chain of Responsibility 
 
 
 
 
 
 
 
7. 
 
 
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 Flyweight 
 
 
Padrão Decorator 
 
Padrão Adapter 
 
 
Padrão Decorator 
 
 
Padrão Composite 
 
 
Gabarito 
Comentado 
 
 
 
 
 
 
 
 
 
8. 
 
 
Dado o diagrama de classe identifique o padrão GoF estrutual: 
 
 
 
Proxy 
 
 
Decorator 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('784366','7168','6','5674640','6');
javascript:duvidas('758749','7168','7','5674640','7');
javascript:duvidas('582781','7168','8','5674640','8');
 
Composite 
 
 
Facade 
 
 
Flyweight 
 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, 
Composite, Decorator, Façade, Flyweight e Proxy. 
Composite: Compor objetos em estruturas de árvore para representar hierarquias todo-parte. 
Composite permite que clientes tratem objetos individuais e composições de objetos de maneira 
uniforme. 
 
PADRÕES DE PROJETO DE SOFTWARE 
 
Lupa Calc. 
 
 
 
 
 CCT0763_A4_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
 
 
1. 
 
 
considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão todos classificados como Estruturais: 
 
 
 
singleton; bridge ; protype; decorator ; faça de ; flyweight ; Proxy 
 
 
adapter ; bridge ; protype ¿ decorator ; faça de ; flyweight ; singleton 
 
 
adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; singleton 
 
adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; Proxy 
 
 
singleton; bridge ; composite; decorator ; faça de ; flyweight;¿ Proxy 
 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
Os padrões estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e 
Proxy. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; associados à maneira como 
classes e objetos são organizados estruturalmente; oferecem formas efetivas para usar conceitos OO como herançae 
composição, e são abstrações de aspectos estruturais. 
Seu objetivo é definir caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mútua. 
 
 
 
 
 
 
 
2. 
 
 
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? 
 
Fachada 
 
 
Observer 
 
 
Singleton 
 
 
Decorator 
 
 
Fábrica Abstrata 
 
 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
javascript:duvidas('107780','7168','1','5674640','1');
javascript:duvidas('1078148','7168','2','5674640','2');
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, 
Composite, Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua 
integração e colaboração mutua. 
O padrão Façade (fachada) é um padrão Fachada, ou seja, faz uma fachada única para todas as 
fachadas, ou seja, Fornece uma interface unificada para um conjunto de objetos que constituem 
um subsistema.define uma interface a um nível mais elevado, para tornar um subsistema mais 
fácil de usar. 
Oferece uma interface única para um conjunto de interfaces de um subsistema. Façade define 
uma interface de nível mais elevado que torna o subsistema mais fácil de usar. 
 
 
 
 
 
 
 
3. 
 
 
O objetivo do Flyweight é diminuir o consumo de memória, porém deve ser utilizado com 
cautela. Gamma et al (2000) recomendam sua utilização somente quando todas as condições 
abaixo forem verdadeiras, EXCETO uma. Qual delas abaixo é essa situação? 
 
 
A aplicação não depende da identidade do objeto. 
 
 
Uma aplicação utiliza um grande número de objetos. 
 
 
Os custos de armazenamento são altos por causa da grande quantidade de objetos. 
 
 
Muitos grupos de objetos podem ser substituídos por relativamente poucos objetos 
compartilhados, uma vez que estados extrínsecos são removidos. 
 
Quando for necessário elaborar um algoritmo ou algo complicado para separar objetos 
mutáveis de imutáveis; 
 
 
 
Explicação: 
Essa afirmativa está incorreta para o padrão Flyweight, porque ela é uma situação em que não 
deve ser usada, assim como também quando o estado dos objetos não for imutável (é preciso 
passar o estado mutável como parâmetro e isto pode ser impraticável se o estado consistir de 
vários objetos).. 
 
 
 
 
 
 
 
4. 
 
 
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: 
 
 
Composite; 
 
 
Proxy; 
 
Façade; 
 
 
Flyweight 
 
 
Decorator 
 
 
Gabarito 
Comentado 
 
 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2952240','7168','3','5674640','3');
javascript:duvidas('707483','7168','4','5674640','4');
 
 
 
 
 
 
5. 
 
 
(BNDES - CESGRANRIO 2009) O presidente de uma empresa determinou que fosse disponibilizado um sistema de vendas na 
Internet. No entanto, o software de controle de estoque que deve ser acessado pela aplicação de vendas é muito antigo e provê 
uma API (Application Programming Interface) de uso muito complicado. Para que os desenvolvedores possam acessar uma 
interface mais simples, o arquiteto do sistema pode determinar o uso do padrão de projeto 
 
 
Prototype. 
 
 
Flyweight. 
 
 
Observer. 
 
 
Decorator. 
 
Façade. 
 
 
 
 
 
 
 
6. 
 
 
Dado o diagrama de classe identifique o padrão GoF estrutual 
 
 
 
Decorator 
 
 
Bridge 
 
 
Adapter 
 
 
Proxy 
 
Flyweight 
 
 
 
 
 
 
 
7. 
 
 
Quanto às vantagens, assinale a opção INCORRETA sobre o padrão Façade. 
 
 
Havendo mudança em alguma regra de negócio, basta realizar as alterações necessárias 
na classe Façade; 
 
 
Sempre que for desejável, cria uma interface para um conjunto de objetos com o objetivo 
de facilitar o uso da aplicação; 
 
Quando o tamanho do conjunto de objetos for significativamente menor que a quantidade 
de vezes em que eles são usados na aplicação; 
 
 
O cliente não precisa conhecer todas as regras de negócio envolvidas com a concessão de 
um empréstimo; 
 
 
Permite que objetos individuais cuidem de uma única tarefa, deixando que a fachada se 
encarregue de divulgar as suas operações; 
 
 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('775706','7168','5','5674640','5');
javascript:duvidas('582797','7168','6','5674640','6');
javascript:duvidas('2952064','7168','7','5674640','7');
Essa afirmativa está incorreta, porque ela se refere ao padrão Flyweight. 
 
 
 
 
 
 
 
8. 
 
 
Que padrão estrutural provê um ponto de atendimento para que outro objeto possa controlar o acesso ao primeiro: 
 
 
 
Facade 
 
Proxy 
 
 
Decorator 
 
 
Flyweight 
 
 
Adapter 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('597631','7168','8','5674640','8');
PADRÕES DE PROJETO DE SOFTWARE 
 
Lupa Calc. 
 
 
 
 
 CCT0763_A5_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
1. 
 
 
Analise as sentenças abaixo. 
 
I - A estrutura do padrão interpreter sugere que a modelagem do problema seja realizada através de uma gramática 
procedural. 
 
II - O padrão Interpreter tem como desvantagem definir uma classe para cada gramática, pois quando se tem muitas 
gramáticas, são difíceis de manter e administrar. 
 
III - No padrão de projeto Template Method as partes que podem variar, conforme a situação, contexto ou problema a ser 
resolvido, são redefinas nas classes derivadas (concretas). 
 
IV - O padrão de projeto Template Method sugere a implementação de um algoritmo fixo em uma superclasse abstrata onde se 
consegue alterar o comportamento do algoritmo, sem modificar sua estrutura lógica. 
 
Marque a opção correta. 
 
II - III - IV 
 
 
I - II - IV 
 
 
III - IV 
 
 
I - II - III 
 
 
I - III - IV 
 
 
Gabarito 
Comentado 
 
 
 
 
 
 
 
2. 
 
 
(CESGRANRIO - 2010) Um dos participantes da equipe de desenvolvimento de um framework deve implementar uma operação 
em uma das classes desse framework. Seja X o nome dessa classe. Essa operação implementa um algoritmo em particular. 
Entretanto, há passos desse algoritmo que devem ser implementados pelos usuários do framework através da definição de uma 
subclasse de X. Sendo assim, qual o padrão de projeto do catálogo GoF (Gang of Four) a ser usado pelo desenvolvedor do 
framework na implementação da referida operação, dentre os listados a seguir? 
 
 
Singleton. 
 
Template Method. 
 
 
Decorator. 
 
 
Interpreter. 
 
 
Observer. 
 
 
 
Explicação: 
A família de padrões GoF, está divida em três grupos principais de padrões:Padrões de Criação, Padrões Estruturais e Padrões 
Comportamentais. 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
Há 7 (sete) tipos de padrões estruturais GoF: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. 
Há 11 padrões comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, 
State, Strategy, Template Method e Visitor. 
O Template Method define o esqueleto de um algoritmo dentro de uma operação, deixando alguns passos a serem preenchidos 
pelas subclasses. Template Method permite que suas subclasses redefinam certos passos de um algoritmo sem mudar sua 
estrutura. 
 
 
 
 
 
3. 
 
 
Qual é o padrão GoF comportamental correspondente ao código abaixo? 
Approver larry = new Director(); 
Approver sam = new VicePresident(); 
Approver tammy = new President(); 
larry.SetSuccessor(sam); 
sam.SetSuccessor(tammy); 
// Generate and process purchase requests 
Purchase p = new Purchase(2034, 350.00, "Assets"); 
larry.ProcessRequest(p); 
p = new Purchase(2035, 32590.10, "Project X"); 
larry.ProcessRequest(p); 
p = new Purchase(2036, 122100.00, "Project Y"); 
larry.ProcessRequest(p); 
 
....... 
 
 
 
 
Observer 
 
 
State 
 
 
Command 
 
 
Visitor 
 
Chain of Responsability 
 
 
 
Explicação: 
O padrão Chain of Responsability, compõem objetos em cascata para, através dela, delegar 
uma requisição até que um objeto a sirva. 
 
 
 
 
 
4. 
 
 
Marque a única alternativa correta sobre um cenário de aplicação do padrão de projeto Template Method 
 
 
 
Garantimos que não será possível instanciar mais do que 1(uma) instância de uma determinada classe 
 
 
Armazenamos o estado interno de um objeto para permitir a implementação da operação de desfazer (undo) 
 
 
Permitimos, em tempo de execução, que sejam adicionadas novas operações sobre uma estrutura de dados 
 
Implementamos partes invariantes de um algoritmo em uma classe abstrata e deixamos que o restante do código seja 
implementado nas subclasses 
 
 
Possibilitamos a comunicação entre interfaces incompatíveis 
 
 
 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
 
5. 
 
 
Qual padrão evita o acoplamento do remetente de uma solicitação ao receptor e encadeia os objetos receptores passando a 
solicitação ao longo da cadeia até que um objeto a trate? 
 
 
Command. 
 
 
Nenhuma das anteriores. 
 
 
Observer. 
 
 
Mediator. 
 
Chain of Responsability. 
 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Chain of Responsability, compõem objetos em cascata para, através dela, delegar 
uma requisição até que um objeto a sirva. 
 
 
 
 
 
6. 
 
 
A implementação do padrão de projeto Chain of Responsability requer que cada objeto receptor de uma determinada solicitação 
tenha uma lógica para descrever os tipos de solicitação que é capaz de processar e como passar adiante aquelas que requeiram 
processamento por outros receptores. A delegação das solicitações pode formar uma árvore de recursão, com um mecanismo 
especial para inserção de novos receptores no final da cadeia existente. 
 
Marque a alternativa que NÃO identifica uma vantagem do padrão de projeto Chain of Responsability. 
 
 
Remetente e 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. 
 
As partes invariantes, conforme a situação, contexto ou problema a ser resolvido, podem ser redefinidas em classes 
abstratas gerando interconexão entre os objetos. 
 
 
Padrão libera um objeto de ter que conhecer qual o outro objeto que trata de uma solicitação. 
 
 
Gabarito 
Comentado 
 
 
 
 
 
 
 
7. 
 
Baseando-se nas necessidades apresentadas do lado direito do quadro abaixo, relacione-as ao 
padrão adequado a utilização e, em seguida marque a alternativa que corresponde a sequencia 
numerada correspondente. 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
 
 
4 - 2 - 1 - 3 
 
4 - 3 - 1 - 2 
 
 
2 - 3 - 4 - 1 
 
 
3 - 4 - 1 - 2 
 
 
4 - 1 - 2 - 3 
 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
 
 
 
 
 
8. 
 
 
A classe Handler é uma classe abstrata, portanto, não pode ser instanciada diretamente. Assim, para montar uma cadeia de 
objetos é necessário especializá-la em que tipo de classes? Assinale dentre as opções abaixo aquela que está correta. 
 
 
com método púbico; 
 
 
baixa coesão. 
 
concretas; 
 
 
alto acoplamento; 
 
 
Generalizada; 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
 
PADRÕES DE PROJETO DE SOFTWARE 
Lupa Calc. 
 
 
 
 
 
CCT0763_A6_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
 
 
1. 
 
 
Qual padrão define um objeto que encapsula a forma como um conjunto de objetos interage, promovendo o acoplamento fraco 
ao evitar que os objetos se refiram uns aos outros explicitamente, permitindo variar suas interações independentemente? 
 
 
Command. 
 
Mediator. 
 
 
Strategy. 
 
 
Nenhuma das anteriores. 
 
 
State. 
 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Mediator é um padrão define um objeto que encapsula a forma como um conjunto de 
objetos interage, promovendo o acoplamento fraco ao evitar que os objetos se refiram uns aos 
outros explicitamente, permitindo variar suas interações independentemente. 
O padrão Mediator é muito útil para programadores Visual Basic (principalmente das versões 5 e 
6), pois ele é um atalho para a falta de herança. Ele é tipicamente usado em formulários em que 
o mesmo media por seus controle e componentes. 
 
 
 
 
 
 
 
2. 
 
 
Qual padrão usar para fornecer um meio de acessar sequencialmente os elementos de um objeto agregado sem expor a sua 
representaçãosubjacente? 
 
 
Nenhuma das anteriores. 
 
 
Chain of Responsability. 
 
Iterator. 
 
 
Mediator. 
 
 
Visitor. 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
javascript:duvidas('912965','7168','1','5674640','1');
javascript:duvidas('912964','7168','2','5674640','2');
 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Iterator por definição "Prove uma maneira de acessar os elementos de um objeto 
agregado sequencialmente sem expor sua representação interna.". 
 
 
 
 
 
 
 
3. 
 
 
Definir um objeto que encapsula a forma como um conjunto de objetos interagem. Promove o baixo acoplamento ao evitar que 
os objetos se refiram uns aos outros diretamente/explicitamente. 
Qual opção abaixo corresponde à descrição anterior? 
 
 
Intenção do padrão de projeto composite 
 
 
Intenção do padrão de projeto prototype 
 
Intenção do padrão de projeto mediator 
 
 
Intenção do padrão de projeto proxy 
 
 
Intenção do padrão de projeto strategy 
 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Mediator é um padrão define um objeto que encapsula a forma como um conjunto de 
objetos interage, promovendo o acoplamento fraco ao evitar que os objetos se refiram uns aos 
outros explicitamente, permitindo variar suas interações independentemente. 
 
 
 
 
 
 
 
4. 
 
 
O problema de acessar elementos de coleções, matrizes ou estruturas de dados encadeados é bastante recorrente em 
programação. Assinale dentre as alternativas abaixo,aquela que oferece uma forma de percorrer este tipo de objeto agregado, 
sem conhecer seus detalhes de implementação. 
 
 
Padrão Proxy; 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1034346','7168','3','5674640','3');
javascript:duvidas('735774','7168','4','5674640','4');
 
Padrão Iterator; 
 
 
Padrão Memento; 
 
 
Padrão Visitor; 
 
 
Padrão Mediator; 
 
 
Gabarito 
Comentado 
 
 
 
 
 
 
 
 
 
5. 
 
 
Qual padrão encapsula uma solicitação como objeto permitindo parametrizar clientes com diferentes solicitações, enfileirar ou 
fazer log das solicitações e suportar operações que podem ser desfeitas? 
 
 
Observer. 
 
 
State. 
 
 
Nenhuma das anteriores. 
 
 
Mediator. 
 
Command. 
 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Command encapsula uma solicitação como um objeto, permitindo a parametrização de 
clientes com diferentes solicitações, o enfileiramento e o registro de solicitações e o suporte a 
operações que possam ser desfeitas. O objetivo do padrão de projeto Command é encapsular 
chamadas de métodos. 
As principais aplicabilidades deste padrão de projeto são: permitir fácil inclusão de novos 
comandos, permitir tratamento de 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 
 
 
 
 
 
 
 
6. 
 
 
Qual padrão de projeto GOF é melhor representado pela classe java.sql.ResultSet, a qual possui os métodos next() e hasnext() 
e é utilizada para percorrer sequencialmente as tuplas que representam o retorno de uma consulta no banco de dados. 
 
 
Interpreter 
 
 
Visitor 
 
 
Command 
 
Iterator 
 
 
Decorator 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('912968','7168','5','5674640','5');
javascript:duvidas('890396','7168','6','5674640','6');
 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais 
O padrão Iterator por definição "Prove uma maneira de acessar os elementos de um objeto 
agregado sequencialmente sem expor sua representação interna.". 
 
 
 
 
 
 
 
7. 
 
 
Quando encapsulamos requisições de usuários na forma de objetos estamos utilizando o padrão de projeto: 
 
 
Command 
 
 
Strategy 
 
 
State 
 
 
Chain of Responsability 
 
 
Façade 
 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de aspectos 
comportamentais. 
O padrão Command encapsula uma solicitação como um objeto, permitindo a parametrização de 
clientes com diferentes solicitações, o enfileiramento e o registro de solicitações e o suporte a 
operações que possam ser desfeitas. O objetivo do padrão de projeto Command é encapsular 
chamadas de métodos. 
As principais aplicabilidades deste padrão de projeto são: permitir fácil inclusão de novos 
comandos, permitir tratamento de 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. 
 
 
 
 
 
 
 
8. 
 
 
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: 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('890358','7168','7','5674640','7');
javascript:duvidas('115672','7168','8','5674640','8');
 
 
 
Mediator 
 
 
Command 
 
 
Iterator 
 
 
Builder. 
 
Memento 
 
 
 
Explicação: 
Memento é um padrão comportamental, assim como os seguintes padrões: command, iterator, mediator. 
O padrão Memento 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. 
 
PADRÕES DE PROJETO DE SOFTWARE 
7a aula 
Lupa 
 
 
 
 
 
Exercício: CCT0763_EX_A7_202003135461_V116/09/2021 
Aluno(a): MARCIO RICARDO FERREIRA MENDES 2021.3 EAD 
Disciplina: CCT0763 - PADRÕES DE PROJETO DE SOFTWARE 202003135461 
 
 
1 
 Questão 
 
 
O padrão Visitor é um Padrão Comportamental GoF. O objetivo desse padrão é: 
I- Representar uma operação a ser realizada nos elementos de uma estrutura de objetos; 
II- Definir uma dependência um-para-muitos entre objetos para que quando um objeto 
mudar de estado, todos os seus dependentes sejam notificados e atualizados 
automaticamente; 
III- permite que você defina uma nova operação sem alterar as classes dos elementos nos 
quais a operação atua; 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 Somente os itens I e II; 
 Somente o item I; 
 Somente o item III; 
 Somente o item II; 
 Somente os itens I e III; 
Respondido em 16/09/2021 10:58:29 
 
 
Explicação: 
O objetivo do padrão Visitor, de acordo com Gamma et. al, 2000, é 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. 
O item II está incorreto, porque esse é o objetivo do padrão Observer. 
 
 
 
2 
 Questão 
 
 
Qual a diferença entre o padrão Strategy e State? 
 
 A diferença do Strategy para o State, é que no Strategy eu vou encapsular. 
 A diferença do Strategy para o State, é que no Strategy muda de comportamento 
em função do seu estado. 
 A diferença do Strategy para o State, é que no Strategy adiciona um 
comportamento a uma aplicação. 
 A diferença do Strategy para o State, é que no Strategy vou usar objetos para 
representar estados e polimorfismos. 
 A diferença do Strategy para o State, é que no Strategy vou trabalha apenas com o 
estado da classe Conectado. 
Respondido em 16/09/2021 10:58:35 
javascript:diminui();
javascript:aumenta();
 
 
Explicação: 
Esta afirmativa está correta porque o padrão Strategy define uma família de algoritmos , 
encapsula cada um deles , e torna-os intercambiáveis, permitindo assim que os algoritmos 
variem independentemente dos clientes que os utilizam. Já no padrão State, ele permite a 
um objeto alterar o seu comportamento quando o seu estado interno mudar. O objeto 
parecerá ter mudado de classe 
 
 
 
3 
 Questão 
 
 
Qual é o padrão responsável para separar os dados lógicos e as regras de negócio da interface do usuário e o fluxo da 
aplicação? 
 
 
Chain of Responsibility 
 
Controller 
 
Bridge 
 MVC 
 
Indirection 
Respondido em 16/09/2021 10:58:40 
 
 
Explicação: 
O padrão de arquitetura MVC é uma combinação de padrões centrada no padrão 
Observer e consiste de três participantes: 
Model: representa os dados da aplicação e regras de negócio associadas com os dados. 
Notifica o View sobre alterações. 
View: é um Observer para o Model. Notifica o Controller sobre eventos iniciados pelo usuário 
e lê dados do Model. 
Controller: é um Observer para o View. Encapsula lógica de controle que afeta o Model e 
seleciona View. 
O MVC é utilizado em muitos projetos devido à arquitetura que possui, o que possibilita a 
divisão do projeto em camadas muito bem definidas. Cada uma delas, o Model, o Controller 
e a View, executa o que lhe é definido e nada mais do que isso. 
A utilização do padrão MVC trás como benefício isolar as regras de negócios da lógica de 
apresentação, a interface com o usuário. Isto possibilita a existência de várias interfaces 
com o usuário que podem ser modificadas sem que haja a necessidade da alteração das 
regras de negócios, proporcionando assim muito mais flexibilidade e oportunidades de reuso 
das classes. 
Uma das características de um padrão de projeto é poder aplicá-lo em sistemas distintos. O 
padrão MVC pode ser utilizado em vários tipos de projetos como, por exemplo, desktop, 
web e mobile. 
 
 
 
4 
 Questão 
 
 
Marque a alternativa que está relacionada ao padrão de projeto que é mais apropriado quando o comportamento de um 
objeto depende do seu estado e ele pode mudar seu comportamento em tempo de execução. 
 
 
Observer 
 
Memento 
 State 
 
Visitor 
 
Strategy 
Respondido em 16/09/2021 10:58:47 
 
 
 
5 
 Questão 
 
 
Qual padrão define uma família de algoritmos, encapsula cada uma delas e torna-as intercambiáveis, e permite que o 
algoritmo varie independentemente dos clientes que o utilizam? 
 
 
Visitor. 
 
Decorator. 
 
Template Method. 
 
Nenhuma das anteriores. 
 Strategy. 
Respondido em 16/09/2021 10:58:52 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de 
aspectos comportamentais. 
O padrão Strategy define uma família de algoritmos , encapsula cada um deles, e torna-os 
intercambiáveis, permitindo assim que os algoritmos variem independentemente dos 
clientes que os utilizam. 
 
 
 
6 
 Questão 
 
 
Identifique dentre as opções abaixo, aquela que representa o padrão de projeto comportamental , cuja ideia principal é 
implementar diferentes algoritmos em uma hierarquia de classes, onde cada um deles pode ser substituído pelo outro, 
independente do cliente que o utiliza . 
 
 
Decorator; 
 Strategy 
 
Visitor; 
 
State; 
 
Proxi; 
Respondido em 16/09/2021 10:58:57 
 
 
Gabarito 
Comentado 
 
 
 
 
 
7 
 Questão 
 
 
https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4816054380&cod_hist_prova=266852006&pag_voltar=otacka
https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4816054380&cod_hist_prova=266852006&pag_voltar=otacka
Marque a alternativa que está relacionada com o padrão de projeto que pode ser utilizado para configurar uma classe com 
um dentre muitos comportamentos disponíveis. 
 
 Strategy 
 
Visitor 
 
State 
 
Memento 
 
Observer 
Respondido em 16/09/2021 10:58:59 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
Os padrões Comportamentais GoF contemplam 11 (onze) tipos de padrões: Escopo por Classe: Interpreter, Template 
Method; Escopo por Objeto: Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, 
e Visitor. 
O padrão Strategy define uma família de algoritmos , encapsula cada um deles, e torna-os intercambiáveis, permitindo 
assim que os algoritmos variem independentemente dos clientes que os utilizam. 
 
 
Gabarito 
Comentado 
 
 
 
 
 
8 
 Questão 
 
 
(2016 - COPEVE-UFAL) A adoção de padrões de projeto proporciona uma reutilização estratégica durante o 
desenvolvimento de software, uma vez que promove o reuso de soluções previamente validadas e notadamente bem 
conhecidas (reuso de rationale). A figura apresenta um diagrama de classes que modela o controlador responsável por 
controlar o nível de dificuldade de um jogo eletrônico. Vale salientar que o nível de dificuldade pode ser ajustado em 
tempo de execução, a partir do perfil de cada jogador. 
 
 
Assinale a alternativa que representa o padrão de projetos que foi utilizado no exemplo apresentado na figura. 
 
 State, uma vez que este padrão possui o propósito de facilitar mudanças dinâmicas na execução dos métodos. 
 
Composite, pois os diversos níveis de dificuldade estão representados através de uma hierarquia bem definida. 
 
Observer, uma vez que o controlador precisa monitorar os níveis de dificuldade. 
 
Command, uma vez que cada nível de dificuldade representa um comando complementar do jogo, representando, 
assim, diferentes formas de acionar o jogo. 
 
Chain ofResponsability, uma vez que não se sabe a priori qual o nível de dificuldade que será utilizado, variando 
no decorrer da execução. 
Respondido em 16/09/2021 10:59:04 
 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4816054380&cod_hist_prova=266852006&pag_voltar=otacka
https://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=4816054380&cod_hist_prova=266852006&pag_voltar=otacka
Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, 
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
São projetados para organizar, gerenciar e combinar diferentes comportamentos. 
O objetivo dos Comportamentais têm a ver com a maneira pela qual responsabilidades são 
distribuídas a classes e objetos durante a realização de uma tarefa. São abstrações de 
aspectos comportamentais. 
O padrão State permite que um objeto altere o seu comportamento quando o seu estado 
interno muda. O objeto parecerá ter mudado de classe. 
O padrão encapsula os estados em classes separadas e delega as tarefas para o objeto que 
representa o estado atual, nós sabemos que os comportamentos mudam juntamento com o 
estado interno. 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
Lupa Calc. 
 
 
 
 
 
CCT0763_A8_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não 
valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. 
Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
1. 
 
 
Com relação aos padrões GRASP, assinale a opção correta: 
 
 
 
A alta coesão (high cohesion) é um padrão utilizado para aprimorar a ligação entre as classes, 
permitindo que a classe A não dependa de outras classes. Esse padrão é considerado o princípio 
central e útil em projetos orientados a objetos que utilizam GRASP. 
 
O especialista na informação (information expert) associa-se ao mapeamento de 
responsabilidade em que se procura atribuir responsabilidade à classe que tenha informação 
necessária para satisfazê-la. 
 
 
O criador (creator) é utilizado para a solução do problema de quem cria a instância de uma 
classe com objetos do modelo de domínio. Nesse caso, se A registra B, então atribui-se à classe 
B a responsabilidade de se criar uma instância de A. 
 
 
O acoplamento baixo (low coupling) baseia-se na quantidade de ligações entre as classes e está 
destinado à atribuição de responsabilidade ao primeiro objeto além da camada de interface com 
o usuário, que é responsável por receber ou tratar uma mensagem de operação do sistema. 
 
 
O controlador (controller) permite solucionar problemas no controle de criação de instâncias de 
classes. Nesse sentido, se a classe X contiver dados iniciais da classe Y ou se X usar de maneira 
muito próxima Y, caberá a X criar instâncias de Y, em que o controller representaria o padrão 
mais indicado para solucionar esse problema. 
 
 
 
Explicação: 
Temos os seguintes Padrões GRASP: Expert (Especialista), Creator 
(Criador), High Coesion, Low Coupling (Baixo Acoplamento), Controller. 
Padrões GRASP descrevem princípios fundamentais de atribuição de 
responsabilidade a objetos. 
Grupamento de padrões diferente, que tem propostas diferentes dos padrões 
GoF. 
Os padrões GRASP são PRINCÍCPIOS, nos quais nós devemos nos basear, para 
desenvolvimento. 
Os padrões GRASP se inter-relacionam se misturam e são aplicados nos 
padrões GoF. 
Os padrões GRASP vão decidir quem é que vai assumir essa responsabilidade 
aqui. 
O objetivo dele é identificar quem vai determinar quem vai ter a 
responsabilidade, 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
quem é que vai assumir a responsabilidade de um determinado conhecimento 
ou de uma determinada ação. 
 
 
 
 
 
2. 
 
 
Os padrões GRASP são PRINCÍCPIOS, nos quais nós devemos nos basear, para 
o desenvolvimento. 
A informação necessária para uma tarefa computacional frequentemente está 
¿espalhada¿ por vários objetos. Para o exemplo: determinar o total de uma 
venda requer a colaboração de 3 objetos, em 3 classes diferentes, qual o 
melhor padrão GRASP deve ser usado? 
 
 
Acoplamento fraco; 
 
 
Controlador; 
 
Expert (Especialista da informação); 
 
 
Coesão Alta; 
 
 
Criador; 
 
 
 
Explicação: 
Essa resposta está correta porque Expert (Especialista da informação), 
porque é o padrão mais usado para atribuir responsabilidades. Há muitos 
experts parciais. Neste caso mensagens são usadas para estabelecer as 
colaborações. Note que, com o uso do padrão Expert o encapsulamento das 
classes é mantido. 
 
 
 
 
 
3. 
 
 
Utilizando a nomenclatura dos padrões GRASP, o padrão Criador assume que 
tipo de responsabilidade? 
 
 
Assume a responsabilidade de conhecer, pois sua funcionalidade está 
relacionada com a resposta a seguinte pergunta: Quem deve criar um 
objeto A? 
 
Assume a responsabilidade de fazer, pois sua funcionalidade está 
relacionada com a resposta a seguinte pergunta: Quem deve criar um 
objeto A? 
 
 
Assume a responsabilidade de substituir, pois sua funcionalidade está 
relacionada com a resposta a seguinte pergunta: Quem deve criar um 
objeto A? 
 
 
Assume a responsabilidade de estimar, pois sua funcionalidade está 
relacionada com a resposta a seguinte pergunta: Quem deve criar um 
objeto A? 
 
 
Assume a responsabilidade de julgar, pois sua funcionalidade está 
relacionada com a resposta a seguinte pergunta: Quem deve criar um 
objeto A? 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
 
Explicação: 
Essa afirmativa está correta porque, utilizando a nomenclatura dos padrões 
GRASP (Larman, 2007), o padrão Criador assume a responsabilidade de fazer, 
pois sua funcionalidade está relacionado com a resposta a seguinte pergunta: 
Quem deve criar um objeto A? Grifa-se, novamente, a palavra quem da 
pergunta anterior. 
 
 
 
 
 
4. 
 
 
Nos padrões GRASP (General Responsability Assigment Software 
Patterns), as responsabilidades de um projeto podem ser divididas em 
¿conhecer¿ e ¿fazer¿. Assinale o conceito CORRETO. 
 
 
As responsabilidades ¿fazer¿ estão relacionadas à distribuição das 
características do sistema entre as classes; 
 
 
No conhecer, eu delego a responsabilidade de quem é que vai ser 
responsável por criar; 
 
No conhecer, eu delego quem é o responsável por saber o estado de 
uma determinada classe; 
 
 
No fazer, vai demonstrar quem é que vai saber o estado; 
 
 
As responsabilidades ¿conhecer¿ estão relacionadas com a distribuição 
do comportamento do sistema entre as classes; 
 
 
 
Explicação: 
Esse conceito está CORRETO porque: 
As responsabilidades ¿conhecer¿ estão relacionadas à distribuição das 
características do sistema entre as classes. 
As responsabilidades ¿fazer¿ estão relacionadas com a distribuição do 
comportamento do sistema entre as classes. 
No fazer, eu delego a responsabilidade de quem é que vai ser responsável por 
criar. 
No conhecer, vai demonstrar quem é que vai saber o estado. 
 
 
 
 
 
5. 
 
 
No GRASP direcionar a ação para a classe que sabe resolvê-la é: 
 
 
 
Controller 
 
 
Indirection 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
 
Information Expert 
 
 
Creator 
 
 
Variation 
 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low 
Coupling, Controller, ou seja: Especialista; Criador; Baixo Acoplamento 
(Acoplamento Fraco). 
No Expert (Especialista da informação), o que acontece é que o 
comportamento está espalhado(estratificado) por toda árvore, em todo o 
gráfico de classe. 
Especialista atribuir responsabilidade ao especialista da informação. 
Especialista na informação é um princípio utilizado para determinar onde 
delegar responsabilidades. Essas responsabilidades incluem métodos, campos 
computados, e assim em diante. 
Ele vai escolher os objetos especialistas para ele receber essas 
responsabilidades. 
É o padrão mais usado para atribuir responsabilidades. 
Benefício: O comportamento fica distribuído entre as classes que têm a 
informação necessária (classes ¿leves¿). Favorece alta coesão. 
 
 
 
 
 
6. 
 
 
O que é MELHOR para uma aplicação: acoplamento alto ou acoplamento fraco? 
Qual a afirmativa está INCORRETA. 
 
Um alto acoplamento traz inúmeros problemas para uma aplicação, é 
consenso entre profissionais da área que todo projeto orientado a 
objetos deve aumentar o acoplamento entre os artefatos. 
 
 
Um alto acoplamento traz inúmeros problemas para uma aplicação, é 
consenso entre profissionais da área que todo projeto orientado a 
objetos deve minimizar o acoplamento entre os artefatos. 
 
 
Um alto acoplamento traz inúmeros problemas para uma aplicação, 
entre as quais aumentar a complexidade da manutenção da aplicação. 
 
 
Um alto acoplamento traz inúmeros problemas para uma aplicação, 
entre as quais a diminuição das chances de reutilização. 
 
 
Um alto acoplamento traz inúmeros problemas para uma aplicação, 
entre as quais a dificuldade de entendimento da solução proposta 
 
 
 
Explicação: 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
Este item está INCORRETO, porque um alto acoplamento traz inúmeros 
problemas para uma aplicação, entre as quais a dificuldade de entendimento 
da solução proposta, a diminuição das chances de reutilização, além de 
aumentar a complexidade da manutenção da aplicação. Portanto, é consenso 
entre profissionais da área que todo projeto orientado a objetos deve 
minimizar o acoplamento entre os artefatos. 
 
 
 
 
 
7. 
 
 
Uma classe com acoplamento forte depende muito de outras classes. Isso pode conduzir os seguintes 
problemas num sistema: 
 
 
I. As classes são difíceis de aproveitar tendo em vista que sempre que uma classe for utilizada todas as 
outras das quais ela depende devem estar presentes; 
II. As alterações nas classes relacionadas podem forçar mudanças locais difíceis de compreender 
isoladamente. 
III. Facilidade na compreensão nas mudanças das classes no sistema. 
IV. Ao fazer alguma mudança numa classe também devem ser feitas mudanças nas outras que estão 
ligadas a esta classe. 
 
Com base nestas informações assinale a alternativa CORRETA. 
 
 
I, III, IV 
 
 
Somente a III. 
 
 
II, III, IV 
 
 
I, II, III 
 
I, II, IV 
 
 
 
 
 
8. 
 
 
Identifique o padrão GRASP utilizado no código abaixo: public class Aviao { public static Object pilotar() 
{ } } public class Navio { public static Object navegar() { } } public class Marujo { Navio.navegar(); } 
 
 
High Coesion 
 
Information Expert 
 
 
Indirection 
 
 
Variation 
 
 
Pure Fabrication 
 
 
 
Explicação: 
Padrões GRASP: Expert (Especialista), Creator (Criador), High Coesion, 
Low Coupling (Baixo Acoplamento), Controller. 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
Expert (Especialista da informação) - O que acontece é que o 
comportamento está espalhado (estratificado) por toda árvore, em 
todo o gráfico de classe. 
Especialista na informação é um princípio utilizado para determinar 
onde delegar responsabilidades. Essas responsabilidades incluem 
métodos, campos computados, e assim em diante. 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
Lupa Calc. 
 
 
 
 
 
CCT0763_A9_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
 
 
1. 
 
 
Qual padrão GRASP eu devo utilizar ara atender aos seguintes problemas: 
Como manter a complexidade sob controle? 
As classes são difíceis de compreender? 
As classes são difíceis de reutilizar? 
 
 
Invenção Pura; 
 
 
Especialista da Informação; 
 
 
Indireção; 
 
 
Criador; 
 
High Cohesion (Coesão alta); 
 
 
 
Explicação: 
Essa resposta está CORRETA, porque a ideia deste padrão consiste em que, é desejável, que eu 
tenha uma aplicação de baixo acoplamento e alta coesão. Acoplamento fraco e alta coesão. 
A coesão implica que um componente ou classe encapsule somente os atributos e operações 
muito relacionadas a si e com a classe do componente ou classe propriamente dito. 
Além disso, esse padrão também serva para os seguintes problemas: as classes são difíceis de 
manter, e as classes são frágeis, sendo afetadas por praticamente todas as modificações. 
 
 
 
 
 
 
 
2. 
 
 
O General Responsability Assignment Software Pattener que define a responsabilidade: Comportamentos com o mesmo nome 
mas que fazem operações deferentes. Trata-se de? 
 
 
High Coesion 
 
 
Information Expert 
 
Polymorphis 
 
 
Indirection 
 
 
Pure Fabrication 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:diminui();
javascript:aumenta();
javascript:calculadora_on();
javascript:duvidas('2952893','7168','1','5674640','1');
javascript:duvidas('581891','7168','2','5674640','2');
 
 
Explicação: 
Polymorphism (Polimorfismo) - através de uma interface única, eu possa encapsular 
vários comportamentos. 
De acordo com o princípio do polimorfismo, a responsabilidade de definir a variação dos comportamentos 
com base no tipo é atribuída ao tipo para o qual essa variação ocorre. Isto é conseguido utilizando operações 
polimórficas. 
 
 
 
 
 
 
 
3. 
 
 
sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta: 
 
 
 
Define-se um método físico na classe PAI. Os métodos nas classes filho são definidos. Neste caso cada método é 
sobreposto. No caso de uma nova classe filho há necessidade obrigatória devido a estrutura PAI de se definir o método 
na nova classe. Isto é polimorfismo. 
 
Define-se um método abstrato, em uma classe abstrata. Cada classe que herda a classe abstrata implementa o método 
físico. Dependendo da classe instanciada é executado o método correpondente. Isto é polimorfismo. 
 
 
Define-se um método na classe PAI. Este método é copiado nas classes que herdam a classe PAI. Isto é polimorfismo. 
 
 
Define-se vários métodos. Cada método deve ter uma estrutura IF...THEN...para cada situação. Isto é polimorfismo. 
 
 
Define-se uma estrutura de herança. Automaticamente fica definido uma estrutura de métodos. Isto é polimorfismo 
 
 
 
Explicação: 
Ideia do Polimorfismo: através de uma interface única, eu possa encapsular vários comportamentos. 
O Polimorfismo indica a capacidade de abstrair várias implementações diferentes em uma única interface. 
Existem dois grandes grupos de Polimorfismo. Um deles é sobecrever um método, ou seja, subscrever métodos com a mesma 
assinatura. 
Criaria uma classe ou interface superior, definiria por dentro o método, a classe que herda teria que ter a mesma assinatura, e a 
partir daí reescrever (overwrite) esse comportamento. 
O outro não é baseado na assinatura, mais sim na chamada, pelo número de parâmetros, ele poderia escolher. EX. usar em 
consultor, onde temos um construtor com um construtor com um parâmetro dois, três, diferenciados pela quantidade e/ou tipo de 
parâmetro, estudado em aulas de programação e linguagem. 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('116815','7168','3','5674640','3');4. 
 
 
Qual padrão GRASP é um padrão de projeto de delegação, o qual deve delegar a outros objetos 
o serviço que precisa ser feito? 
 
 
Coesão Alta; 
 
 
Variações protegidas; 
 
 
Criador; 
 
Controlador; 
 
 
Invenção pura; 
 
 
 
Explicação: 
Essa resposta está correta, porque para Larman (2007) um 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. De forma mais simples, 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; ele 
coordena ou controla a atividade. 
 
 
 
 
 
 
 
5. 
 
 
O Paradigma Orientado a Objetos com os padrões de responsabilidades GRASP definem que a melhor técnica de programação 
POO é: 
 
 
Desenvolver as classes com a menor coesão e menor acoplamento possível. 
 
 
Desenvolver as classes com a maior coesão e maior acoplamento possível. 
 
 
Desenvolver as classes com a menor coesão e maior acoplamento possível. 
 
Desenvolver as classes com a maior coesão e menor acoplamento possível. 
 
 
Desenvolver as classes sem coesão e com acoplamento. 
 
 
 
 
 
 
 
6. 
 
No padrão GRASP (General Responsability Assigment Software Patterns), a utilização 
do polimorfismo é recomendada para auxiliar a responder a duas perguntas. Uma delas é: 
Como criar componentes de software interconectáveis? 
Qual afirmativa abaixo se refere a essa pergunta? 
I- Essa pergunta se refere à utilização de comandos condicionais (if-then-esle ou switch por 
exemplo). 
II- Essa pergunta se refere a, se surgir uma nova regra ou uma nova variação condicional, ela 
exigirá a modificação dos comandos, tornando difícil alterar e estender o programa. 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2953015','7168','4','5674640','4');
javascript:duvidas('581899','7168','5','5674640','5');
javascript:duvidas('2952889','7168','6','5674640','6');
 
III- Essa pergunta se refere a relacionamentos do tipo cliente-servidor, não necessariamente 
aplicações em rede, mas com funcionalidades semelhantes, procurando destacar a importância 
de se projetar uma solução que permita alterar o servidor sem precisar modificar ou afetar a 
classe cliente. 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 
Somente os itens I e II; 
 
Somente o item III; 
 
 
Somente o item I; 
 
 
Somente o item II; 
 
 
Somente os itens II e III; 
 
 
 
Explicação: 
Os itens I e II estão INCORRETOS porque elas se referem a primeira pergunta do padrão 
Polimorfismo, que é: 
Como tratar alternativas com base no tipo? 
 
 
 
 
 
 
 
7. 
 
 
(FCC - 2012) O componente Controller do MVC: 
 
 
 
Responde às solicitações de queries e encapsula o estado da aplicação. 
 
 
Notifica os componentes de apresentação das mudanças efetuadas nos dados e expõe a funcionalidade da aplicação. 
 
Define o comportamento da aplicação, as ações do usuário para atualizar os componentes de dados e seleciona os 
componentes para exibir respostas de requisições. 
 
 
Envia requisições do usuário para o controlador e recebe dados atualizados dos componentes de acesso a dados. 
 
 
É onde são concentradas todas as regras de negócio da aplicação e o acesso aos dados. 
 
 
 
Explicação: 
Temos os seguintes Padrões GRASP: Expert (Especialista), Creator (Criador), High Coesion, 
Low Coupling (Baixo Acoplamento), Controller. 
Padrões GRASP descrevem princípios fundamentais de atribuição de responsabilidade a objetos. 
Controller (Controlador) - Padrão bastante utilizado no MVC, no Servlet. 
O padrão controlador atribui a responsabilidade de manipular eventos do sistema para uma 
classe que não seja de interface do usuário (UI) que representa o cenário global ou cenário 
de caso de uso. Um objeto controlador é um objeto de interface não-usuário, responsável por 
receber ou manipular um evento do sistema. 
Atribuir a responsabilidade do tratamento de um evento do sistema a uma classe que representa 
uma das seguintes escolhas: 
Representa o ¿sistema¿ todo (controlador fachada) 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1097080','7168','7','5674640','7');
Representa um tratador oficial de todos os eventos de sistema de um caso de uso (controlador de 
caso de uso). 
 
 
 
 
 
 
 
8. 
 
 
Com relação à arquitetura MVC, considere: I. O MODEL representa os dados da empresa e as regras de negócio que governam 
o acesso e atualização destes dados. II. O VIEW acessa os dados da empresa através do MODEL e especifica como esses dados 
devem ser apresentados. É de responsabilidade do VIEW manter a consistência em sua apresentação, quando o MODEL é 
alterado. III. O CONTROLLER traduz as interações do VIEW em ações a serem executadas pelo MODEL. Com base na interação 
do usuário e no resultado das ações do MODEL, o CONTROLLER responde selecionando uma VIEW adequada. IV. Permite uma 
única VIEW para compartilhar o mesmo modelo de dados corporativos em um fluxo de comunicação sequencial. Está correto o 
que se afirma em 
 
I, II e III, apenas. 
 
 
I, II, III e IV. 
 
 
I e II, apenas. 
 
 
II, III e IV, apenas. 
 
 
II e III, apenas. 
 
 
 
Explicação: 
A afirmativa IV é incorreta porque o padrão de arquitetura MVC (Model-View-Controller) é 
uma combinação de padrões centrada no padrão Observer e consiste de três participantes: 
Model: representa os dados da aplicação e regras de negócio associadas com os dados. Notifica o 
View sobre alterações. 
View: é um Observer para o Model. Notifica o Controller sobre eventos iniciados pelo usuário e lê 
dados do Model. 
Controller: é um Observer para o View. Encapsula lógica de controle que afeta o Model e 
seleciona View. 
O MVC é utilizado em muitos projetos devido à arquitetura que possui, o que possibilita a divisão 
do projeto em camadas muito bem definidas. Cada uma delas, o Model, o Controller e a View, 
executa o que lhe é definido e nada mais do que isso. 
A utilização do padrão MVC trás como benefício isolar as regras de negócios da lógica de 
apresentação, a interface com o usuário. Isto possibilita a existência de várias interfaces com o 
usuário que podem ser modificadas sem que haja a necessidade da alteração das regras de 
negócios, proporcionando assim muito mais flexibilidade e oportunidades de reuso das classes. 
 
https://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1027762','7168','8','5674640','8');
PADRÕES DE PROJETO DE SOFTWARE 
 
Lupa Calc. 
 
 
 
 
 CCT0763_A10_202003135461_V1 
 
 
Prezado (a) Aluno(a), 
 
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua 
avaliação. O mesmo será composto de questões de múltipla escolha. 
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar 
com este modelo de questões que será usado na sua AV e AVS. 
 
 
 
 
1. 
 
 
Relacione os conceitos de: 
1- Utilizado em projetos de software para projetar uma classe que não pertença ao domínio do 
problema, mas que ofereça ao projeto coesão alta, acoplamento baixo e reuso. 
2- O seu objetivo é evitar o acoplamento direto entre objetos. 
3- O seu objetivo é evitar que problemas de variação e instabilidade de objetos afetem outras 
classes. 
 
 
1- Invenção Pura; 2- Variações Protegidas e 3- Indireção. 
 
 
1- Variações Protegidas; 2- Invenção Pura e 3- Indireção. 
 
1- Invenção Pura; 2- Indireção e 3- Variações Protegidas. 
 
 
1- Variações Protegidas; 2- Indireção e 3- Invenção Pura. 
 
 
1- Indireção; 2- Invenção Pura e 3- Variações Protegidas. 
 
 
 
Explicação: 
Essa resposta está correta porque o relaciona corretamente os objetivos de modelo de Invenção 
Pura, Indireção

Continue navegando