Logo Passei Direto
Buscar

PADRÕES DE PROJETO DE SOFTWARE_Aula01-10

Conjunto de questões e respostas da 1ª aula sobre padrões de projeto de software: perguntas de múltipla escolha, um exercício de implementação (árvore/padrão Composite) e explicações sobre Observer, Interpreter, Decorator, Façade, Singleton e categorias GoF.

Ferramentas de estudo

Questões resolvidas

Quanto aos design patterns, é correto afirmar que:
a UML pode ser utilizada para representar frameworks, mas não é tão ampla ao ponto de oferecer suporte à representação dos design patterns.
são projetos concretos que incluem detalhes de implementação.
descrevem melhores práticas, bons projetos, e captam a experiência de uma maneira possível de ser usada por outros.
são conjuntos de classes abstratas e concretas que podem ser adaptadas e ampliadas para criar sistemas de aplicações.
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.

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?
Decorator
Builder
Façade
Creator
Composite

Analise as afirmacoes 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.
Interpreter, Observer, Decorator
Observer, Interpreter, Decorator
Interpreter, Observer, Decorator
Observer, Decorator, Interpreter
Decorator, Interpreter, Observer

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:
observer e bridge
builter e abstract factory.
singleton e façade
façade e singleton
abstract factory e composite.

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
As afirmativas I, II, IV estão corretas e a afirmativa III está errada
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, encapsulamento, 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 refatoramento da aplicação.
As afirmativas I, II, IV estão corretas e a afirmativa III está errada
As afirmativas I, II, III, IV estão corretas
As afirmativas II, III, IV estão corretas e a afirmativa I está errada.
As afirmativas I, III, IV estão corretas e a afirmativa II está errada
As afirmativas I, II, III estão corretas e a afirmativa IV está errada.

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.
FACADE.
BUILDER.
FACTORY METHOD.
SINGLETON.

(2017 - IESES - CREA-SC) Assinale a alternativa que define corretamente o conceito de Design Patterns:
¿Uma solução para um problema dentro de um contexto¿
¿Uma prática não estruturada para solução de problemas independentemente de um contexto¿
¿Uma solução para um problema independentemente de um contexto¿
¿Um procedimento padrão para resolver problemas anteriormente desconhecidos dentro de um contexto genérico¿
¿Uma prática não estruturada para solução de problemas dentro de um determinado contexto¿

Qual padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar?
Builder.
Singleton.
Factory Method.
Abstract Factory.
Nenhuma das anteriores.

Relacione os padrões de projetos listados abaixo com suas respectivas finalidades:
Define uma dependência um para muitos entre objetos tal que, quando o estado de um objeto muda, todos os seus dependentes são notificados e atualizados automaticamente.
Fornece uma interface unificada para um conjunto de objetos que constituem um subsistema. Define uma interface de mais alto nível que torna o subsistema mais fácil de usar.
Sem violar o encapsulamento, captura e exterioriza o estado interno de um objeto, tal que o objeto possa ser restaurado a este estado mais tarde.
Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexível para a extensão de funcionalidade.
Controla o acesso a um objeto através de outro objeto, que atua como seu substituto, ou como um envoltório.
5 - 1 - 3 - 4 - 2
1 - 5 - 3 - 4 - 2
3 - 5 - 1 - 4 - 2
3 - 1 - 5 - 2 - 4
5 - 1 - 3 - 2 - 4

(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
Abstract Factory
Decorator

Como a adoção de um padrão de projeto pode auxiliar o desenvolvimento de software?
Por meio da aplicação obrigatória de ao menos um dos padrões GOF
Por meio da sugestão de melhorias nos acessos e estruturação de situações problemáticas
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
Alterando o meio de acessar classes por meio de Interfaces e Dependências
Por meio da adoção de qualquer padrão, desde que seja um dos que foram aceitos pela comunidade internacional

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?
Template Method
Singleton
State
Strategy
Abstract Factory

O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido como "Construtor Virtual" chama-se:
Template Method
Factory Method
Dependency Injection
Business Delegate
Abstract Factory

Quais dos padrões abaixo corresponde aos padrões de criação.
Abstract Factory, Builder, Factory Method
Adapter, Bridge, Composite.
Singleton, Strategy, Template Method
Chain of Responsibility, Command, Iterator
Mediator, Memento, Observer

Escolha a opção que contem, somente, padrões de interface, segundo Metsker:
Adapter, Decorator, Composite e Bridge
Abstract Factory, Facade, Composite e Bridge
Decorator, Facade, Composite e Bridge
Adapter, Facade, Composite e Builder
Adapter, Facade, Composite e Bridge

Qual padrão é de arquitetura?
Gamma
GRASP
GoF
MVC
Flower

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:
Safe (seguro), Maintenance (manutenção) e Optimized (otimizado)
Safe (seguro), Secure (confiável ) e Stable (estável)
Maintenance (manutenção), Fault tolerance (tolerante a falhas) e Stable (estável)
Maintenance (manutenção), Fault tolerance (tolerante a falhas), Secure (confiável ) e Stable (estável)
Interpreter (interpretável) , Secure (confiável ) e Stable (estável)

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 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.
Quando classes delegam responsabilidade para uma entre várias subclasses de apoio.

Qual padrão fornece uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes completas?
Abstract Factory.
Builder.
Nenhuma das anteriores.
Factory Method.
Adapter.

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,- Interpreter, - Iterator, - Mediator, - composite , State, Strategy
Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy
Command,- bridge, - Iterator, - Mediator, - composite - State, Strategy
Command,- bridge, - Iterator, - Mediator, bridge, State, Strategy

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Quanto aos design patterns, é correto afirmar que:
a UML pode ser utilizada para representar frameworks, mas não é tão ampla ao ponto de oferecer suporte à representação dos design patterns.
são projetos concretos que incluem detalhes de implementação.
descrevem melhores práticas, bons projetos, e captam a experiência de uma maneira possível de ser usada por outros.
são conjuntos de classes abstratas e concretas que podem ser adaptadas e ampliadas para criar sistemas de aplicações.
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.

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?
Decorator
Builder
Façade
Creator
Composite

Analise as afirmacoes 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.
Interpreter, Observer, Decorator
Observer, Interpreter, Decorator
Interpreter, Observer, Decorator
Observer, Decorator, Interpreter
Decorator, Interpreter, Observer

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:
observer e bridge
builter e abstract factory.
singleton e façade
façade e singleton
abstract factory e composite.

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
As afirmativas I, II, IV estão corretas e a afirmativa III está errada
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, encapsulamento, 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 refatoramento da aplicação.
As afirmativas I, II, IV estão corretas e a afirmativa III está errada
As afirmativas I, II, III, IV estão corretas
As afirmativas II, III, IV estão corretas e a afirmativa I está errada.
As afirmativas I, III, IV estão corretas e a afirmativa II está errada
As afirmativas I, II, III estão corretas e a afirmativa IV está errada.

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.
FACADE.
BUILDER.
FACTORY METHOD.
SINGLETON.

(2017 - IESES - CREA-SC) Assinale a alternativa que define corretamente o conceito de Design Patterns:
¿Uma solução para um problema dentro de um contexto¿
¿Uma prática não estruturada para solução de problemas independentemente de um contexto¿
¿Uma solução para um problema independentemente de um contexto¿
¿Um procedimento padrão para resolver problemas anteriormente desconhecidos dentro de um contexto genérico¿
¿Uma prática não estruturada para solução de problemas dentro de um determinado contexto¿

Qual padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar?
Builder.
Singleton.
Factory Method.
Abstract Factory.
Nenhuma das anteriores.

Relacione os padrões de projetos listados abaixo com suas respectivas finalidades:
Define uma dependência um para muitos entre objetos tal que, quando o estado de um objeto muda, todos os seus dependentes são notificados e atualizados automaticamente.
Fornece uma interface unificada para um conjunto de objetos que constituem um subsistema. Define uma interface de mais alto nível que torna o subsistema mais fácil de usar.
Sem violar o encapsulamento, captura e exterioriza o estado interno de um objeto, tal que o objeto possa ser restaurado a este estado mais tarde.
Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexível para a extensão de funcionalidade.
Controla o acesso a um objeto através de outro objeto, que atua como seu substituto, ou como um envoltório.
5 - 1 - 3 - 4 - 2
1 - 5 - 3 - 4 - 2
3 - 5 - 1 - 4 - 2
3 - 1 - 5 - 2 - 4
5 - 1 - 3 - 2 - 4

(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
Abstract Factory
Decorator

Como a adoção de um padrão de projeto pode auxiliar o desenvolvimento de software?
Por meio da aplicação obrigatória de ao menos um dos padrões GOF
Por meio da sugestão de melhorias nos acessos e estruturação de situações problemáticas
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
Alterando o meio de acessar classes por meio de Interfaces e Dependências
Por meio da adoção de qualquer padrão, desde que seja um dos que foram aceitos pela comunidade internacional

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?
Template Method
Singleton
State
Strategy
Abstract Factory

O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido como "Construtor Virtual" chama-se:
Template Method
Factory Method
Dependency Injection
Business Delegate
Abstract Factory

Quais dos padrões abaixo corresponde aos padrões de criação.
Abstract Factory, Builder, Factory Method
Adapter, Bridge, Composite.
Singleton, Strategy, Template Method
Chain of Responsibility, Command, Iterator
Mediator, Memento, Observer

Escolha a opção que contem, somente, padrões de interface, segundo Metsker:
Adapter, Decorator, Composite e Bridge
Abstract Factory, Facade, Composite e Bridge
Decorator, Facade, Composite e Bridge
Adapter, Facade, Composite e Builder
Adapter, Facade, Composite e Bridge

Qual padrão é de arquitetura?
Gamma
GRASP
GoF
MVC
Flower

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:
Safe (seguro), Maintenance (manutenção) e Optimized (otimizado)
Safe (seguro), Secure (confiável ) e Stable (estável)
Maintenance (manutenção), Fault tolerance (tolerante a falhas) e Stable (estável)
Maintenance (manutenção), Fault tolerance (tolerante a falhas), Secure (confiável ) e Stable (estável)
Interpreter (interpretável) , Secure (confiável ) e Stable (estável)

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 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.
Quando classes delegam responsabilidade para uma entre várias subclasses de apoio.

Qual padrão fornece uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes completas?
Abstract Factory.
Builder.
Nenhuma das anteriores.
Factory Method.
Adapter.

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,- Interpreter, - Iterator, - Mediator, - composite , State, Strategy
Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy
Command,- bridge, - Iterator, - Mediator, - composite - State, Strategy
Command,- bridge, - Iterator, - Mediator, bridge, State, Strategy

Prévia do material em texto

PADRÕES DE PROJETO DE SOFTWARE 
1a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Quanto aos design patterns, é correto afirmar que: 
 
 descrevem melhores práticas, bons projetos, e captam a experiência de uma maneira possível de ser usada por outros. 
 
a UML pode ser utilizada para representar frameworks, mas não é tão ampla ao ponto de oferecer suporte à representação dos design 
patterns. 
 
são projetos concretos que incluem detalhes de implementação. 
 
são conjuntos de classes abstratas e concretas que podem ser adaptadas e ampliadas para criar sistemas de aplicações. 
 
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. 
Respondido em 24/03/2019 11:16:31 
 
 
 
 
 2a Questão 
 
 
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? 
 
 
Façade 
 
Builder 
 Composite 
 
Decorator 
 
Creator 
Respondido em 24/03/2019 11:19:22 
 
 
 
 
 3a Questão 
 
 
 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 
 Observer, Interpreter, Decorator 
 
Interpreter, Observer, Decorator 
 
Observer, Decorator, Interpreter 
 
Decorator, Interpreter, Observer 
Respondido em 24/03/2019 11:23:06 
 
 
Explicação: 
O padrão Observer (observador) define uma dependência um para muitos, que será necessária para fazer 
a relação entre um conjunto de dados e várias representações, além de permitir que, quando um objeto 
mude de estado, todos os dependentes sejam notificados. 
Define uma dependência um para muitos entre objetos tal que, quando o estado de um objeto muda, 
todos os seus dependentes são notificados e atualizados automaticamente. 
O padrão Interpreter é um dos padrões de projeto de software, famosos como "Design Patterns", muito 
utilizado para a resolução de problemas quando a modelagem de sistemas ou softwares. Esse padrão esta 
incluso na categoria de Padrão Comportamental, ou seja, ele busca solucionar problemas de modelagem 
que tratam o comportamento de classes. 
Tem a função de interpretar, interfacear delegando responsabilidade. 
O padrão Decorator é um padrão de cuja intenção são as Extenções. 
O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. Decorators oferecem uma alternativa flexível ao uso de herança para estender uma 
funcionalidade (para a extensão de funcionalidade). 
 
 
 
 
 4a Questão 
 
 
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: 
 
 
observer e bridge 
 
abstract factory e composite. 
 
builter e abstract factory. 
 façade e singleton 
 
singleton e façade 
Respondido em 24/03/2019 11:25:12 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
O padrão Façade (fachada) é um padrão Fachada, ou seja, faz uma fachada única para todas as fachadas, 
ou seja, Fornece uma interface unificada para um conjunto de objetos que constituem um 
subsistema.define uma interface a um nível mais elevado, para tornar um subsistema mais fácil de usar. 
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. 
 
 
 
 
 5a Questão 
 
 
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, II, IV estão corretas e a afirmativa III está errada 
 
As afirmativas I, II, III, IV estão corretas 
 
As afirmativas II, III, IV estão corretas e a afirmativa I está errada. 
 As afirmativas I, III, IV estão corretas e a afirmativa II está errada 
 
As afirmativas I, II, III estão corretas e a afirmativa IV está errada. 
Respondido em 24/03/2019 11:27:23 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
Na verdade são quatro aspectos que os padrões de projeto contribuem. Os informados nos itens I, III e IV, e mais: auxilia na aprendizagem a 
partir da documentação de experiências passadas. Por esse motivo, o item II está errado. 
 
 
 
 6a Questão 
 
 
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. 
 
 
 
Singleton. 
 Factory Method. 
 
Builder. 
 
Facade. 
 
Mediator. 
Respondido em 24/03/2019 11:29:58 
 
 
Explicação: 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. O 
Factory Method é um Padrão de Criação. 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 objetivo do Factory Method (Método de Fábrica) é definir uma interface para criar um objeto, mas 
deixar as subclasses definirem que classe instanciar. 
 
 
 
 
 7a Questão 
 
 
(2017 - IESES - CREA-SC) Assinale a alternativa que define corretamente o conceito de Design Patterns: 
 
 ¿Um procedimento padrão para resolver problemas anteriormente desconhecidos dentro de um contexto genérico¿ 
 
¿Uma solução paraum 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¿ 
 ¿Uma solução para um problema dentro de um contexto¿ 
Respondido em 24/03/2019 11:32:53 
 
 
Explicação: 
Padrões de projeto são voltados para problemas recorrentes que ocorrem no nosso dia-a-dia. 
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. 
 
 
 
 
 8a Questão 
 
 
Qual padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar? 
 
 Factory Method. 
 
Nenhuma das anteriores. 
 
Builder. 
 
Abstract Factory. 
 
Singleton. 
Respondido em 24/03/2019 11:34:55 
 
 
Explicação: 
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 objetivo do Factory Method (Método de Fábrica) é definir uma interface para criar um objeto, mas 
deixar as subclasses definirem que classe instanciar. 
Situações em que deve ser utilizado o padrão Factory Method: 
Quando se quer localizar num ponto único a conhecimento de qual subclasse está sendo usada. 
Quando classes delegam responsabilidade para uma entre várias subclasses de apoio. 
Quando uma classe quer que suas subclasses especifiquem os objetos criados. 
Quando uma classe (o criador) não pode antecipar a classe dos objetos que deve criar. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
1a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Relacione os padrões de projetos listados abaixo com suas respectivas finalidades: 
PADRÕES DE PROJETO 
1. Facade (fachada) 
2. Decorator (decorador) 
3. Memento (lembrança) 
4. Proxy (procurador) 
5. Observer (observador) 
 
FINALIDADES 
( ) Define uma dependência um para muitos entre objetos tal que, quando o estado de um objeto muda, todos os seus dependentes são 
notificados e atualizados automaticamente. 
( ) Fornece uma interface unificada para um conjunto de objetos que constituem um subsistema. Define uma interface de mais alto nível que 
torna o subsistema mais fácil de usar. 
( ) Sem violar o encapsulamento, captura e exterioriza o estado interno de um objeto, tal que o objeto possa ser restaurado a este estado 
mais tarde. 
( ) Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexível para a extensão de funcionalidade. 
( ) Controla o acesso a um objeto através de outro objeto, que atua como seu substituto, ou como um envoltório. Assinale a alternativa que 
indica a sequência correta, de cima para baixo. 
 
 
5 - 1 - 3 - 4 - 2 
 
1 - 5 - 3 - 4 - 2 
 
3 - 5 - 1 - 4 - 2 
 
3 - 1 - 5 - 2 - 4 
 5 - 1 - 3 - 2 - 4 
Respondido em 24/03/2019 11:40:17 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
Os padrões de Criação GoF contemplam 5 (cinco) tipos de padrões: Escopo por Classe: Factory Method ; Escopo por Objeto: Abstract 
Factory, Builder, Prototype e Singleton. 
Os padrões Estruturais GoF contemplam 8 (oito) tipos de padrões: Escopo por Classe: Class Adapter; Escopo por Objeto: Object 
Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. 
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. 
 
 
 
 2a Questão 
 
 
(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: 
 
 
Strategy 
 Abstract Factory 
 Template Method 
 
Singleton 
 
Decorator 
Respondido em 24/03/2019 11:42:06 
 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
 
Como a adoção de um padrão de projeto pode auxiliar o desenvolvimento de software? 
 
 Por meio da sugestão de melhorias nos acessos e estruturação de situações problemáticas 
 
Por meio da adoção de qualquer padrão, desde que seja um dos que foram aceitos pela comunidade internacional 
 
Por meio da aplicação obrigatória de ao menos um dos padrões GOF 
 
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 
 Alterando o meio de acessar classes por meio de Interfaces e Dependências 
Respondido em 24/03/2019 11:43:04 
 
 
 
 
 4a Questão 
 
 
Sobre padrões de projeto selecione a opção correta sobre as afirmativas abaixo: I - Cada vez que uma boa solução for encontrada para um 
dado problema, a mesma deve ser lapidada, refinada e documentada para uso futuro. II - Padrões de projeto auxiliam projetistas e 
desenvolvedores a reutilizar soluções passadas, relacionadas com problemas são recorrentes em desenvolvimento de software. III ¿ Padrões 
de projeto são voltados para a resolução de problemas específicos, tornando os projetos orientados a objetos mais flexíveis, robustos e 
confiáveis. Iv ¿ Padrões de projeto não permitem a inovação tendo em vista que ¿engessam¿ a criatividade do desenvolvedor. 
 
 
As afirmativas I, III, IV estão corretas e a afirmativa II 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 
 
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. 
Respondido em 24/03/2019 11:45:05 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. O padrão de criação GoF contempla 
cinco tipos de padrões: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
A opção IV está errada porque não há nenhum ¿engessamento¿, isso porque uma das características de padrões é que Capturam soluções de 
projeto exaustivamente refinadas com o passar do tempo e são o resultado de um longo processo de projeto, re-projeto, teste e reflexão 
sobre o que torna um sistema mais flexível, reusável e modular. 
 
 
 
 5a Questão 
 
 
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: 
 
 
Safe (seguro), Maintenance (manutenção) e Optimized (otimizado) 
 
Safe (seguro), Secure (confiável ) e Stable (estável) 
 
Maintenance (manutenção), Fault tolerance (tolerante a falhas) e Stable (estável) 
 Maintenance (manutenção), Fault tolerance (tolerante a falhas), Secure (confiável ) e Stable (estável) 
 Interpreter (interpretável) , Secure (confiável ) e Stable (estável) 
Respondido em 24/03/2019 11:47:08 
 
 
 
 
 6a Questão 
 
 
O Design Patterns que tem a finalidadede usar compartilhamento para suportar grandes quantidades de objetos, de granularidade fina, de 
maneira eficiente, é denominado 
 
 
State 
 
Strategy 
 
Builder 
 Flyweight 
 
Composite 
Respondido em 24/03/2019 11:49:29 
 
 
 
 
 7a Questão 
 
 
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? 
 
 
 
 
Template Method 
 
Singleton 
 
Strategy 
 Abstract Factory 
 
State 
Respondido em 24/03/2019 11:50:48 
 
 
 
 
 8a Questão 
 
 
O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido como "Construtor Virtual" chama-se: 
 
 
Dependency Injection 
 
Abstract Factory 
 
Template Method 
 
Business Delegate 
 Factory Method 
Respondido em 24/03/2019 11:52:05 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
1a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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? 
 
 Composite 
 
Creator 
 
Façade 
 
Builder 
 
Decorator 
Respondido em 23/04/2019 16:12:30 
 
 
 
 
 2a Questão 
 
 
Quais dos padrões abaixo corresponde aos padrões de criação. 
 
 Adapter, Bridge, Composite. 
 Abstract Factory, Builder, Factory Method 
 
Chain of Responsibility, Command, Iterator 
 
Mediator, Memento, Observer 
 
Singleton, Strategy, Template Method 
Respondido em 23/04/2019 16:13:00 
 
 
Explicação: 
Os padrões de criação são aqueles que abstraem e ou adiam o processo criação dos objetos. Eles ajudam a tornar um sistema independente 
de como seus objetos são criados, compostos e representados. 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. 
Há três grupos de Padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 
Os Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente envolve 
decisões dinâmicas para escolher, por exemplo, qual classe instanciar ou a quais objetos delegar 
responsabilidade. Esse padrão nos mostra como estruturar e encapsular essas decisões. 
Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
 
 
 
 
 3a Questão 
 
 
Escolha a opção que contem, somente, padrões de interface, segundo Metsker:: 
 
 Adapter, Decorator, Composite e Bridge 
 Adapter, Facade, Composite e Bridge 
 
Adapter, Facade, Composite e Builder 
 
Decorator, Facade, Composite e Bridge 
 
Abstract Factory, Facade, Composite e Bridge 
Respondido em 23/04/2019 16:13:40 
 
 
Explicação: 
Segundo Metsker, há 5 grupos segundo a intenção: Interfaces, Responsabilidade, Construção, Operações e 
Extensões. 
Interface: Adapter, Facade, Composite, Bridge. 
 
 
 
 
 4a Questão 
 
 
Qual padrão é de arquitetura? 
 
 
GoF 
 
Gamma 
 
Flower 
 
GRASP 
 MVC 
Respondido em 23/04/2019 16:14:05 
 
 
 
 
 5a Questão 
 
 
Softwares são sequencias de instruções a serem seguidas ou executadas que solucionam problemas 
modelados através de algoritmos com documentação associada. Quando um desenvolver projeta um 
software ele deseja criar um programa com um mínimo de qualidade. Com base nesse pressuposto, qual 
única alternativa abaixo que um dos requisitos de qualidade esperado não se enquadra para software 
robusto desenvolvido: 
 
 Interpreter (interpretável) , Secure (confiável ) e Stable (estável) 
 
Maintenance (manutenção), Fault tolerance (tolerante a falhas) e Stable (estável) 
 
Safe (seguro), Maintenance (manutenção) e Optimized (otimizado) 
 Maintenance (manutenção), Fault tolerance (tolerante a falhas), Secure (confiável ) e Stable (estável) 
 
Safe (seguro), Secure (confiável ) e Stable (estável) 
Respondido em 23/04/2019 16:16:04 
 
 
 
 
 6a Questão 
 
 
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 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. 
 
Quando uma classe (o criador) não pode antecipar a classe dos objetos que deve criar. 
Respondido em 23/04/2019 16:17:55 
 
 
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. 
O Factory Method é um Padrão de Criação. 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 objetivo do Factory Method (Método de Fábrica) é definir uma interface para criar um objeto, mas 
deixar as subclasses definirem que classe instanciar. Definir uma interface para criar um objeto mas 
deixar que subclasses decidam que classe instanciar. 
 
 
 
 
 7a Questão 
 
 
Qual padrão fornece uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes completas? 
 
 
Factory Method. 
 
Nenhuma das anteriores. 
 
Builder. 
 
Adapter. 
 Abstract Factory. 
Respondido em 23/04/2019 16:18:32 
 
 
Explicação: 
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 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. 
 
 
 
 
 8a Questão 
 
 
considerando a classe de projetos GoF assinalem a opção cujos padrões de projeto estão todos classificados como Comportamentais 
 
 Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy 
 
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 
Respondido em 23/04/2019 16:19:19 
 
 
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. 
Se categorizarmos os padrões de Projeto por Finalidade, temos as categorias Estruturais, e por Finalidade. Esta categorização pode ser por 
Criação ou Comportamentais. 
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. 
Há 11 padrões comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, 
Template Method e Visitor. 
 
 
 
 
 
 
 
 
PADRÕESDE PROJETO DE SOFTWARE 
2a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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 ii e iii 
 
somente a ii 
 
somente a iii 
 
somente a i e ii 
 somente a i 
Respondido em 30/03/2019 11:40:35 
 
 
Explicação: 
O item II está errado porque o padrã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. 
O item III está errado porque 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. 
 
 
 
 
 2a Questão 
 
 
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¿ 
 
 
nenhuma das alternativas 
 Prototype 
 
Bridge 
 
Singleton 
 
Adapter 
Respondido em 30/03/2019 11:42:51 
 
 
Explicação: 
Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. O 
padrão Prototype especifica tipos a criar usando uma instância como protótipo e criar novos objetos ao 
copiar este protótipo. O padrão de projeto Prototype declara um método chamado clone na superclasse 
abstrata do modelo (Prototype) 
 
 
 
 
 3a Questão 
 
 
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, II, estão corretas e a afirmativa III está errada. 
 
As afirmativas II, III estão corretas e a afirmativa I está errada. 
 
As afirmativas I, III, estão corretas e II errada 
 As afirmativas estão todas corretas 
 
As afirmativas I, II, III estão incorretas 
Respondido em 30/03/2019 11:44:49 
 
 
Explicação: 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
O BUILDER é um Padrão de Criação. É um padrão cuja responsabilidade é a CONSTRUÇÃO 
O padrão Builder é um padrão de cuja intenção é a Construção, ou seja, são padrões cuja responsabilidade é a CONSTRUÇÃO 
O padrão Builder tenta minimizar a carga que os desenvolvedores tem ao ato de criar objetos 
dentro de um construtor. Isso é comum em desenvolvedores iniciantes. 
 
 
 
 
 4a Questão 
 
 
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 II e III; 
 Somente o item II; 
 Somente o item I; 
 Somente os itens I e III; 
 Somente os itens I e II; 
Respondido em 30/03/2019 11:51:18 
 
 
Explicação: 
Os itens I e III estão errados porque eles se referem ao padrão Prototype. 
 
 
 
 
 5a Questão 
 
 
(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 de projeto 
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: 
 
 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. 
 
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. 
 
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. 
 
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. 
Respondido em 30/03/2019 12:02:29 
 
 
Explicação: 
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. 
Essa afirmativa é falsa porque 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. 
 
 
 
 
 6a Questão 
 
 
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? 
 
 
Nenhuma das anteriores. 
 
Factory Method. 
 
Prototype. 
 Builder. 
 
Singleton. 
Respondido em 30/03/2019 12:03:31 
 
 
Explicação: 
Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
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. 
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. 
 
 
 
 
 7a QuestãoO 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 o item I; 
 Somente os itens I e III; 
 Somente os itens I e II; 
 Somente o item II; 
Respondido em 30/03/2019 12:04:58 
 
 
Explicação: 
O item III está errado porque ela se refere ao padrão Prototype. 
 
 
 
 
 8a Questão 
 
 
Assinale a afirmativa correta sobre o padrão Builder: 
 
 
A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida 
 Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto complexo tanto da especificação, quanto 
das partes que o compõem. 
 
Deve-se é 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. 
 
Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a lógica de criação em uma 
hierarquia de herança. 
 
é uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, tornando o código dependente 
a complexidade das classes relacionadas 
Respondido em 30/03/2019 12:05:44 
 
 
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. 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
2a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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. 
 
 
 
SINGLETON. 
 
FACTORY METHOD. 
 BUILDER. 
 
FACADE. 
 
MEDIATOR. 
Respondido em 30/03/2019 12:07:15 
 
 
Explicação: 
Há cinco padrões de criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
O BUILDER é um Padrão de Criação. É um padrão cuja responsabilidade é a CONSTRUÇÃO 
Tentam minimizar a carga que os desenvolvedores têm ao ato de criar objetos dentro de um construtor. Isso é comum em desenvolvedores 
iniciantes. 
 
 
 
 2a Questão 
 
 
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. 
 
 
MEDIATOR. 
 
FACTORY METHOD. 
 BUILDER. 
 
SINGLETON. 
 
FACADE. 
Respondido em 30/03/2019 12:07:49 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais: 
Os padrões de criação GoF contemplam 5 (cinco) tipos de padrões: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
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 Builder tem a função de separar a construção de objeto complexo da representação para criar representações diferentes com mesmo processo. 
O padrão Builder pode ser 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. 
 
 
 
 3a Questão 
 
 
Qual é o padrão GoF criacional correspondente ao código abaixo? 
 public static void main(String[] args) { 
 ObraPadrao obraPadrao = new ObraPadrao(); 
 ObraPadrao obraNova = obraPadrao.clonar(); 
 obraNova.setValor(200000.0); 
 ..... 
 ..... 
 
 
Factory Method 
 
Adapter 
 
Builder 
 
Singleton 
 Prototype 
Respondido em 30/03/2019 12:08:23 
 
 
Explicação: 
O padrão Prototype especifica tipos a criar usando uma instância como protótipo e criar novos objetos ao 
copiar este protótipo. O padrão de projeto Prototype declara um método chamado clone na superclasse 
abstrata do modelo (Prototype) 
 
 
 
 
 4a Questão 
 
 
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 o item I; 
 Somente o item II; 
 Somente os itens I e III; 
 Somente os itens I e II; 
 Somente os itens II e III; 
Respondido em 30/03/2019 12:09:05 
 
 
Explicação: 
O item II está errado porque ela se refere ao padrão Builder. 
 
 
 
 
 5a Questão 
 
 
¿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. 
 
 
Singleton 
 
Facade 
 Builder 
 
Abstract Factory 
 
Factory Method 
Respondido em 30/03/2019 12:10:29 
 
 
 
 
 6a Questão 
 
 
O padrão de projeto singleton é usado para restringir: 
 
 
as relações entre classes e objetos. 
 
classes de atributos complexos 
 
a instanciação de uma classe para objetos simples. 
 a instanciação de uma classe para apenas um objeto. 
 
a quantidade de classes 
Respondido em 30/03/2019 12:11:02 
 
 
Explicação: 
Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
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. 
 
 
 
 
 7a Questão 
 
 
(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 correspondea 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? 
 
 Prototype. 
 
Factory Method. 
 
Abstract Factory. 
 
Command. 
 
Builder. 
Respondido em 30/03/2019 12:17:20 
 
 
 
 
 8a Questão 
 
 
O padrão Singleton é um Padrão de Criação GoF. A grande vantagem deste padrão é: Assinale a única 
resposta CORRETA. 
 
 Criação "preguiçosa" é complicada em ambiente multithreaded; 
 Difícil de testar (simulações dependem de instância extra); 
 Acesso central e extensível a recursos e objetos; 
 Difícil ou impossível de implementar em ambiente distribuído; 
 Qualidade da implementação depende da linguagem; 
Respondido em 30/03/2019 12:22:25 
 
 
Explicação: 
Esta afirmativa é CORRETA porque as outras dizem respeito a desvantagens do padrão Singletos. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
2a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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? 
 
 
Factory Method. 
 
Singleton. 
 
Abstract Factory. 
 Prototype. 
 
Nenhuma das anteriores. 
Respondido em 30/03/2019 12:23:28 
 
 
Explicação: 
Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton 
O PROTOTYPE é um Padrão de Criação. É um padrão cuja responsabilidade é a CONSTRUÇÃO 
Ele especifica os tipos de objetos a serem criados usando uma instância como protótipo e criar novos 
objetos ao copiar este protótipo. 
 
 
 
 
 2a Questão 
 
 
O padrão de projeto Singleton é usado para restringir: 
 
 
Classes de atributos complexos. 
 A instanciação de uma classe para apenas um objeto. 
 
A instanciação de uma classe para objetos simples. 
 
A quantidade de classes. 
 
As relações entre classes e objetos. 
Respondido em 30/03/2019 12:24:01 
 
 
Explicação: 
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. 
 
 
 
 
 3a Questão 
 
 
Acerca dos padrões de criação e de padrões estruturais, assinale a opção correta. 
 
 
São participantes do padrão Façade: o cliente, o alvo, o adaptador e o adaptado. 
 
São exemplos de padrões estruturais: Adapter, Façade, Proxy, Composite, Decorator e Chain of Responsibility. 
 
O padrão adaptador de classe (class adapter) facilita acomodar a adaptação de subclasses de uma classe previamente adaptada. 
 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. 
 Uma das consequências do uso do padrão Prototype é o aumento no uso de subclasses. 
Respondido em 30/03/2019 12:25:57 
 
 
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õ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. 
 
 
 
 
 4a Questão 
 
 
O padrão de projeto Singleton é usado para restringir: 
 
 
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. 
 
As relações entre classes e objetos 
Respondido em 30/03/2019 12:26:51 
 
 
Explicação: 
Os padrões de criação são aqueles que abstraem e ou adiam o processo criação dos objetos. Eles ajudam a tornar um sistema independente 
de como seus objetos são criados, compostos e representados. 
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. 
 
 
 
 
 5a Questão 
 
 
Conhecido como padrões da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os Padrões GoF (Group of Four) estão 
divididos pelos seguintes famílias de padrões: Padrões de Criação ou de Construção, Padrões Estruturais e Padrões Comportamentais. 
 
Considerando os padrões de Criação ou de Construção, analise o modelo abaixo e em seguida marque a alternativa que define a 
representação. 
 
 
 
FACTORY METHOD. 
 
BUILDER. 
 
MEDIATOR. 
 
SINGLETON. 
 PROTOTYPE. 
Respondido em 30/03/2019 12:27:25 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais: 
Os padrões de criação GoF contemplam 5 (cinco) tipos de padrões: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
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 Prototype por definição ¿Especifica os tipos de objetos a serem criados usando uma instância como protótipo e criar novos objetos 
ao copiar este protótipo¿. Declara um método chamado clone na superclasse abstrata do modelo (Prototype). 
 
 
 
 6a Questão 
 
 
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. 
 
 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; 
 Construtor da classe privado, para não permitir a instância de novos objetos da classe; 
 Modificando as aplicações para este padrão de projeto para que a facilidade de instanciar classes em 
tempo de execução possa acontecer; 
 Modificadores static e private para garantiruma mesma instância para todos os objetos criados e 
evitar acesso público; 
 Modificar static para implementar o método getInstance e, assim, retornar a instancia apropriada ou 
criá-la, caso seja a primeira vez; 
Respondido em 30/03/2019 12:29:57 
 
 
Explicação: 
Esta afirmativa NÃO pertence ao padrão Singleton, porque está relacionada ao padrão Prototype. 
 
 
 
 
 7a Questão 
 
 
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. 
 É utilizado na instanciação de objetos complexos. 
 Declara um método chamado clone na superclasse abstrata do modelo. 
 Atribuir a responsabilidade de criação do objeto complexo a outra classe. 
 Minimizar a carga que os desenvolvedores têm ao ato de criar objetos dentro de um construtor. 
Respondido em 30/03/2019 12:30:20 
 
 
Explicação: 
Essa afirmativa está INCORRETA porque ela se refere ao padrão Prototype. 
 
 
 
 
 8a Questã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. 
 
Builder. 
 
Factory Method. 
 
Abstract Factory. 
 Singleton. 
Respondido em 30/03/2019 12:30:52 
 
 
Explicação: 
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. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
3a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Os Padrões de Projeto (GOF) que se apresentam com o formato de uma Lista Encadeada (estrutura de dados) quando são representados por 
um Diagrama de Objetos (UML) e se classificam, respectivamente, como Padrão de Projeto Estrutural e Padrão de Projeto Comportamental, 
são conhecidos como: 
 
 
Observer e Chain of Responsibility 
 Decorator e Chain of Responsibility 
 Observer e Decorator 
 
Decorator e Observer 
 
Chain of Responsibility e Decorator 
Respondido em 09/04/2019 11:40:00 
 
 
 
 
 2a Questão 
 
 
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? 
 
 Composite. 
 
Flyweight. 
 
Nenhuma das anteriores. 
 
Proxy. 
 
Builder. 
Respondido em 09/04/2019 11:40:44 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; 
associados à maneira como classes e objetos são organizados estruturalmente; oferecem formas efetivas 
para usar conceitos OO como herança e composição, e são abstrações de aspectos estruturais. 
O padrão Composite compõem 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. 
 
 
 
 
 3a Questão 
 
 
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 os itens II e III; 
 Somente os itens I e III; 
 Somente os itens I e II; 
 Somente o item I; 
 Somente o item II; 
Respondido em 09/04/2019 11:41:58 
 
 
Explicação: 
O item I está errado porque ela se refere ao padrão Decorator. 
 
 
 
 
 4a Questão 
 
 
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? 
 
 
 
Observer 
 
Interpreter 
 
Iterator 
 Adapter 
 
Chain of Responsibility 
Respondido em 09/04/2019 11:43:19 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; 
associados à maneira como classes e objetos são organizados estruturalmente; oferecem formas efetivas 
para usar conceitos OO como herança e composição, e são abstrações de aspectos estruturais. 
O padrão Adpater é bastante utilizado para compatibilizar classes implementadas por programadores 
diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces 
diferentes em uma estrutura hierárquica única, sem precisar implementar novamente todas as 
funcionalidades e interfaces da classe já existente. 
A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com 
a classe já existente (Adapter) com interface diferente da estrutura de classes que se pretende utilizar no 
sistema. 
Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa 
implementação realizada, mantém a uniformidade do seu projeto original. 
 
 
 
 
 5a Questão 
 
 
Dado o diagrama de classe identifique o padrão GoF estrutual: 
 
 
 
Proxy 
 
Facade 
 Composite 
 
Flyweight 
 
Decorator 
Respondido em 09/04/2019 11:43:53 
 
 
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. 
 
 
 
 
 6a Questão 
 
 
Programadores se deparam muitas vezes com a situação onde é preciso acrescentar responsabilidades a objetos e não a classe. Uma 
alternativa é atribuir dinamicamente a um dado objeto. Este padrão é chamado de: 
 
 
Singleton 
 
protype 
 
Bridge 
 
Instance 
 Decorator. 
Respondido em 09/04/2019 11:44:24 
 
 
Explicação: 
O padrão Decorator é um padrão de cuja intenção são as Extenções. 
O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) dinamicamente. Decorators oferecem uma 
alternativa flexível ao usode herança para estender uma funcionalidade. 
 
 
 
 7a Questão 
 
 
Qual o objetivo do padrão Compositer? Assinale a opção INCORRETA. 
 
 Composite permite anexar responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. 
 Composite permite que o ganho que eu tenho com a programação para a interface seja enorme. 
 Composite permite que clientes tratem objetos individuais e composições de objetos de maneira 
uniforme. 
 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 compõem objetos em estruturas de árvore para representar hierarquias todo-parte. 
Respondido em 09/04/2019 11:44:56 
 
 
Explicação: 
Essa afirmativa está INCORRETA, porque as outras se referem ao padrão Decorator. 
 
 
 
 
 8a Questão 
 
 
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 
 
State 
 
Observer 
 
Strategy 
Respondido em 09/04/2019 11:45:59 
 
 
Explicação: 
O padrão Decorator é um padrão de cuja intenção são as Extenções. 
O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. Decorators oferecem uma alternativa flexível ao uso de herança para estender uma 
funcionalidade (para a extensão de funcionalidade). 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
3a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
(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 é: 
 
 
abstract factory 
 
canvas 
 bridge 
 
faça de 
 adapter 
Respondido em 09/04/2019 11:46:58 
 
 
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. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
O padrão Bridge, desacopla uma abstração de sua implementação, de tal forma que os dois possam variar 
independentemente. 
 
 
 
 
 2a Questão 
 
 
Qual o objetivo do padrão Decorator? Assinale a opção CORRETA. 
 
 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 que clientes tratem objetos individuais e composições de objetos de maneira 
uniforme. 
 Decorator permite que o ganho que eu tenho com a programação para a interface seja enorme. 
 Decorator permite anexar responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. 
Respondido em 09/04/2019 11:47:41 
 
 
Explicação: 
Essa afirmativa está correta, porque as outras se referem ao padrão Composite. 
 
 
 
 
 3a Questão 
 
 
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. 
 
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. 
 
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. 
Respondido em 09/04/2019 11:48:30 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
O padrão Composite compõem 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. 
 
 
 
 
 4a Questão 
 
 
Qual padrão estrutural permite que um objeto utilize serviços 
de outros objetos com interfaces diferentes por meio de uma 
interface única: 
 
 
 Bridge 
 
Flyweight 
 
Composite 
 Adapter 
 
Facade 
Respondido em 09/04/2019 11:49:01 
 
 
 
 
 5a Questão 
 
 
Qual padrão observamos no diagrama de classes abaixo? 
 
 
 
 
Bridge 
 
FlyWeight 
 
Prototype 
 Decorator 
 Composite 
Respondido em 09/04/2019 11:49:36 
 
 
Explicação: 
O padrão Decorator é um padrão de cuja intenção são as Extenções. 
O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. Decorators oferecem uma alternativa flexível ao uso de herança para estender uma 
funcionalidade (para a extensão de funcionalidade). 
 
 
 
 
 6a Questão 
 
 
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: 
 
 
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 
 
Usando diretamente os métodos construtores não há como limitar o número de instâncias criadas 
 
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 
Respondido em 09/04/2019 11:51:17 
 
 
 
 
 7a Questão 
 
 
O padrão Adpater é bastante utilizado para compatibilizar classes implementas por programadores diferentes, ou desenvolvidas em momentos 
diferentes, ou ainda para unir classes com interfaces diferentes em uma estrututura hierarquica única, sem precisar implementar novamente 
todas as funcionalidades e interfaces da classe já existente, considere as afirmativas: I - A idéia é criar uma nova classe (Adapter) com a 
interface padrão que se deseja para fazer a conexão com a classe já existente (Adaptee) com interface diferente da estrutura de classes que 
se pretende utilizar no sistema. Ii - Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa 
implementação realizada, mantém a uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos 
sem relação de herança. 
 
 As afirmativasestão todas corretas 
 
As afirmativas II, III estão corretas e a afirmativa I está errada. 
 
As afirmativas I, III, estão corretas e II errada 
 As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 
As afirmativas I, II, III estão incorretas 
Respondido em 09/04/2019 11:52:39 
 
 
Explicação: 
O conceito do Adapter é converter a interface de uma classe em outra interface esperada pelos clientes. Adapter permite a comunicação entre 
classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces. 
A ideia é fazer adaptação entre dois recursos. 
Devemos usar sempre que for necessário adaptar uma interface para um cliente 
Vejamos o exemplo da tomada. O plug é três pinos, e a tomada é de dois pinos, então eu tenho que ter uma classe adaptadora. 
 
 
 
 8a Questão 
 
 
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 _____________________________. 
 
 Decorator; 
 
Associativa; 
 
Beidge; 
 
Composite; 
 
Adapter; 
Respondido em 09/04/2019 11:53:09 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
3a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Qual padrão estrutural permite que um objeto utilize serviços 
de outros objetos com interfaces diferentes por meio de uma 
interface única: 
 
 
 
Flyweight 
 
Composite 
 
Bridge 
 
Facade 
 Adapter 
Respondido em 23/04/2019 16:20:00 
 
 
 
 
 2a Questão 
 
 
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()); 
} 
} 
....... 
 
 Decorator 
 Composite 
 
Adapter 
 
Mediator 
 
Bridge 
Respondido em 23/04/2019 16:20:44 
 
 
Explicação: 
O padrão Decorator é um padrão de cuja intenção são as Extenções. 
O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) 
dinamicamente. Decorators oferecem uma alternativa flexível ao uso de herança para estender uma 
funcionalidade (para a extensão de funcionalidade). 
 
 
 
 
 3a Questão 
 
 
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: 
 
 Cliente pode não ter ou não saber todos os dados necessários para instanciar um objeto através de construtores 
 
Usando diretamente os métodos construtores não há como limitar o número de instâncias criadas 
 Não é preciso saber a classe concreta do objeto para criá-lo 
 
A aplicação cliente fica acoplada diretamente a uma implementação concreta para poder usar diretamente o construtor 
 
Objeto complexo pode necessitar da criação de objetos menores previamente, com certo controle difícil de implementar com 
construtores 
Respondido em 23/04/2019 16:21:30 
 
 
 
 
 4a Questão 
 
 
O padrão Adpater é bastante utilizado para compatibilizar classes implementas por programadores diferentes, ou desenvolvidas em momentos 
diferentes, ou ainda para unir classes com interfaces diferentes em uma estrututura hierarquica única, sem precisar implementar novamente 
todas as funcionalidades e interfaces da classe já existente, considere as afirmativas: I - A idéia é criar uma nova classe (Adapter) com a 
interface padrão que se deseja para fazer a conexão com a classe já existente (Adaptee) com interface diferente da estrutura de classes que 
se pretende utilizar no sistema. Ii - Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa 
implementação realizada, mantém a uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos 
sem relação de herança. 
 
 As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 
As afirmativas I, III, estão corretas e II errada 
 As afirmativas II, III estão corretas e a afirmativa I está errada. 
 
As afirmativas I, II, III estão incorretas 
 
As afirmativas estão todas corretas 
Respondido em 23/04/2019 16:22:07 
 
 
Explicação: 
O conceito do Adapter é converter a interface de uma classe em outra interface esperada pelos clientes. Adapter permite a comunicação entre 
classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces. 
A ideia é fazer adaptação entre dois recursos. 
Devemos usar sempre que for necessário adaptar uma interface para um cliente 
Vejamos o exemplo da tomada. O plug é três pinos, e a tomada é de dois pinos, então eu tenho que ter uma classe adaptadora. 
 
 
 
 5a Questão 
 
 
O padrão Bridger é um Padrão Estrutural GoF. Com relação aos seus objetivos podemos afirmar que 
(assinale a opção INCORRAETA). 
 
 O padrão Bridge desacopla uma abstração de sua implementação para que os dois possam variar 
independentemente; 
 O padrão Bridge é usado quando for necessário evitar uma ligação permanente entre a interface e 
implementação; 
 O padrão Bridge permiti que o sistema consiga se adaptar dinamicamente a diferentes plataformas é 
mais desejável ainda; 
 No padrão Bridge a solução natural quando se pretende desenvolver uma determinada solução para 
duas plataformas diferentes é utilizar herança, implementando uma classe derivada para cada 
situação; 
 O padrão Bridge converte a interface de uma classe em outra interface esperada pelos clientes; 
Respondido em 23/04/2019 16:22:52 
 
 
Explicação: 
Essa afirmativa está INCORRETA, porque ela se refere ao padrão Adapter. 
 
 
 
 
 6a Questão 
 
 
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? 
 
 
Flyweight. 
 Composite. 
 
Nenhuma das anteriores. 
 
Builder. 
 
Proxy. 
Respondido em 23/04/2019 16:23:14 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; 
associados à maneira como classes e objetos são organizados estruturalmente; oferecem formas efetivas 
para usar conceitos OO como herança e composição, e são abstrações de aspectos estruturais. 
O padrão Composite compõem 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. 
 
 
 
 
 7a Questão 
 
 
Qual o padrão Gof utilizado na figura abaixo? 
 
 
 
 
Composite 
 Observer 
 
Façade 
 Adapter 
 
Singleton 
Respondido em 23/04/2019 16:24:15 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
O padrão Adpater é bastante utilizado para compatibilizar classes implementadas por programadores 
diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces 
diferentes em uma estrutura hierárquica única, sem precisar implementar novamente todas as 
funcionalidades e interfaces da classe já existente.A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com 
a classe já existente (Adapter) com interface diferente da estrutura de classes que se pretende utilizar no 
sistema. 
Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa 
implementação realizada, mantém a uniformidade do seu projeto original. 
 
 
 
 
 8a Questão 
 
 
Qual padrão converte uma interface de uma classe em outra interface e permite que classes com interfaces incompatíveis trabalhem em 
conjunto? 
 
 
Composite. 
 
Decorator. 
 
Bridge. 
 Adapter. 
 
Nenhuma das anteriores. 
Respondido em 23/04/2019 16:24:56 
 
 
Explicação: 
O padrão Adpater é bastante utilizado para compatibilizar classes implementadasas por programadores 
diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces 
diferentes em uma estrutura hierárquica única, sem precisar implementar novamente todas as 
funcionalidades e interfaces da classe já existente. 
A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com 
a classe já existente (Adapter) com interface diferente da estrutura de classes que se pretende utilizar no 
sistema. 
Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa 
implementação realizada, mantém a uniformidade do seu projeto original. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
4a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Qual padrão usa compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina? 
 
 
Composite. 
 
Nenhuma das anteriores. 
 
Bridge. 
 Flyweight. 
 
Façade. 
Respondido em 22/04/2019 20:18:45 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Flyweight é um padrão de projeto de software apropriado quando vários objetos devem ser manipulados 
em memória sendo que muitos deles possuem informações repetidas. Dado que o recurso de memória é 
limitado, é possível segregar a informação repetida em um objeto adicional que atenda as características 
de imutabilidade e comparabilidade (que consiga ser comparado com outro objeto para determinar se 
ambos carregam a mesma informação). 
 
 
 
 
 2a Questão 
 
 
Qual o objetivo do padrão Proxyr? Assinale a opção CORRETA. 
 
 Proxy define uma interface de nível mais elevado que torna o subsistema mais fácil de usar; 
 Proxy oferece uma interface única para um conjunto de interfaces de um subsistema; 
 Proxy faz uma fachada única para todas as fachadas; 
 Proxy prove um substituto ou ponto através do qual um objeto possa controlar o acesso a outro; 
 Proxy expurga o código e delega a uma classe, a terceiros; 
Respondido em 22/04/2019 20:23:09 
 
 
Explicação: 
Essa afirmativa está correta, porque as outras se referem ao padrão Façade. 
 
 
 
 
 3a Questão 
 
 
Que padrão estrutural usa compartilhamento para suportar um grande número de pequenos objetos de forma eficiente. 
 
 
 Flyweight 
 
Composite 
 
Facade 
 
Bridge 
 
Decorator 
Respondido em 22/04/2019 20:23:52 
 
 
 
 
 4a Questão 
 
 
(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 
 
 
Observer. 
 Façade. 
 
Prototype. 
 
Flyweight. 
 
Decorator. 
Respondido em 22/04/2019 20:24:33 
 
 
 
 
 5a Questão 
 
 
O padrão Flyweight é um Padrão Estrutural GoF. Qual o melhor momento em que podemos usar esse 
padrão? 
I- Quando o tamanho do conjunto de objetos for significativamente menor que a quantidade de vezes em 
que eles são usados na aplicação. 
II- Quando objetos podem ser usados em diferentes contextos ao mesmo tempo (agindo sempre como um 
objeto independente). 
III- Quando for necessário elaborar um algoritmo ou algo complicado para separar objetos mutáveis de 
imutáveis. 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 Somente os itens II e III; 
 Somente o item II; 
 Somente os itens I e III; 
 Somente o item I; 
 Somente os itens I e II; 
Respondido em 22/04/2019 20:25:43 
 
 
Explicação: 
O item III está errado porque não devemos usar esse padrão quando isso ocorre. 
 
 
 
 
 6a Questão 
 
 
A classe Façade, em qualquer contexto, tem como objetivo mais amplo buscar respostas para um problema de forma transparente em um 
conjunto de subsistemas e fornecer uma resposta imediata para a classe cliente. Assinale dentre as principais vantagens desse padrão de 
projeto a única que não é verdadeira.: 
 
 
Simplificar o acesso a determinadas funcionalidades de um subsistema, sem inviabilizar sua utilização direta. 
 
Tornar os clientes independentes da complexidade dos diferentes subsistemas de uma aplicação. 
 
judar a melhorar portabilidade dos sistemas. 
 
Incentivar acoplamento fraco entre o subsistema e seus clientes. 
 Incentivar acoplamento forte entre o subsistema e seus clientes. 
Respondido em 22/04/2019 20:28:18 
 
 
 
 
 7a Questão 
 
 
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? 
 
 
Memento 
 Proxy 
 
Singleton 
 
Interpreter 
 
Adapter 
Respondido em 22/04/2019 20:28:50 
 
 
Explicação: 
O padrão Proxy (procurador) controla o acesso a um objeto através de outro objeto, que atua como seu 
substituto, ou como um envoltório. 
 
 
 
 
 8a Questão 
 
 
Quanto às vantagens, assinale a opção INCORRETA sobre o padrão Façade. 
 
 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; 
 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; 
 Permite que objetos individuais cuidem de uma única tarefa, deixando que a fachada se encarregue 
de divulgar as suas operações; 
Respondido em 22/04/2019 20:29:45 
 
 
Explicação: 
Essa afirmativa está incorreta, porque ela se refere ao padrão Flyweight. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
4a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
A utilização do padrão estrutural de projeto cula ideia é utilizar um substituto para o objeto real, mantendo a mesma interface do original 
sempre que for inconveniente, ou indesejável, acessá-lo diretamente é conhecido como: 
 
 
Decorator; 
 Flyweight 
 Proxy; 
 
Composite. 
 
Façade; 
Respondido em 22/04/2019 20:30:36 
 
 
 
 
 2a Questão 
 
 
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. 
 
 Facade 
 
Singleton 
 
Decorator 
 
Factory Method 
 
Strategy 
Respondido em 22/04/2019 20:31:08 
 
 
Explicação: O Padrão Façade é do tipo estrutural . É usado quando um sistema é muito complexo ou difícil de entender, já que possui um 
grande número de classes independentes ou se trechos de código fonte estão indisponíveis. Este padrão esconde as complexidades de um 
sistema maior e provê uma interface simplificada ao cliente. Tipicamente envolve uma únicaclasse responsável por englobar uma série de 
membros requeridos pelo cliente. Estes membros acessam o sistema em nome do Façade e escondem os detalhes de implementação. 
 
 
 
 3a Questão 
 
 
Qual a vantagem do padrão Proxyr? Assinale a opção INCORRETA. 
 
 Permite maior eficiência com caching no cliente; 
 Permite, sempre que for desejável, criar uma interface para um conjunto de objetos com o objetivo 
de facilitar o uso da aplicação; 
 Tem transparência, ou seja, mesma sintaxe usada na comunicação entre o cliente e sujeito real é 
usada no proxy; 
 Permite o tratamento inteligente dos dados no cliente; 
 Consigo atribuir um certo grau de inteligência, o que possibilitaria um tratamento inteligente dos 
dados; 
Respondido em 22/04/2019 20:31:42 
 
 
Explicação: 
Essa afirmativa está incorreta, porque ela se refere ao padrão Façade. 
 
 
 
 
 4a Questão 
 
 
(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. 
 Façade. 
 
Decorator. 
Respondido em 22/04/2019 20:32:21 
 
 
 
 
 5a Questão 
 
 
A classe Façade, em qualquer contexto, tem como objetivo mais amplo buscar respostas para um problema de forma transparente em um 
conjunto de subsistemas e fornecer uma resposta imediata. 
 
Marque a alternativa que NÃO indica uma vantagem do padrão Façade (Fachada) 
 
 Fazer com que o cliente conheça todas as regras de negócio para que possa realizar as mudanças. 
 
Tornar os clientes independentes da complexidade dos diferentes subsistemas de uma aplicação. 
 
Incentivar acoplamento fraco entre o subsistema e seus clientes. 
 
Simplificar o acesso a determinadas funcionalidades de um subsistema, sem inviabilizar sua utilização direta. 
 
Ajudar a melhorar portabilidade dos sistemas. 
Respondido em 22/04/2019 20:33:08 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
 
O Padrão Flyweight é um objeto compartilhado, que pode ser usado em vários contextos, simultaneamente, pois, tem capacidade de funcionar 
de forma independente em cada contexto. Seus métodos e implementações não podem, em momento algum, fazer 
_____________________________________________________________ 
 
 
Acoplamento fraco entre o subsistema e seus clientes. 
 
hipóteses ou exclusões sobre o contexto no qual o objeto opera. 
 hipóteses ou asserções sobre o contexto no qual o objeto opera. 
 
comparações ou associações sobre o contexto no qual o objeto opera. 
 
hipóteses ou asserções sobre fora do contexto no qual o objeto opera. 
Respondido em 22/04/2019 20:34:59 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
 
Os padrões de projetos, quando aplicados ao desenvolvimento de aplicações, fornecem meios de descrever soluções comuns para problemas 
comuns, resultando em redução de tempo gasto com o desenvolvimento e melhoria da qualidade da aplicação. 
 
(FCC - 2009) Analise: 
 
I. É o responsável pela especificação dos tipos de objetos a serem criados usando uma "instância" prototípica e pela criação de novos objetos 
copiando este protótipo. 
 
II. Define uma interface de nível mais alto que torna o subsistema mais fácil de usar e fornece uma interface única para um subsistema com 
diversas interfaces; compõe o grupo de padrões estruturais. 
 
III. Integrante do grupo de padrões comportamentais, ele provê uma forma de acessar sequencialmente os elementos de um agregado de 
objetos, sem expor a representação interna desse agregado. 
 
IV. As consequências do uso deste padrão é que o encapsulamento é mantido, já que objetos usam sua própria informação para cumprir 
responsabilidades; leva ao fraco acoplamento entre objetos e à alta coesão, uma vez que objetos fazem tudo que é relacionado à sua própria 
informação. 
 
As afirmações correspondem, respectivamente, aos padrões 
 
 
Controller, Expert, Singleton e Prototype. 
 
Command, Iterator, Singleton e Expert. 
 
Adapter, Façade, Command e Iterator. 
 Prototype, Façade, Iterator e Expert. 
 
Command, Singleton, Controller e Façade. 
Respondido em 22/04/2019 20:36:19 
 
 
 
 
 8a Questão 
 
 
(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 
 
 
State. 
 Flyweight. 
 
Strategy. 
 
Composite. 
 
Builder. 
Respondido em 22/04/2019 20:36:55 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
4a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Qual o padrão fornece um substituto ou marcador para controlar o acesso a um objeto? 
 
 
Façade. 
 
Bridge. 
 Proxy. 
 
Adapter. 
 
Nenhuma das anteriores. 
Respondido em 22/04/2019 20:37:20 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; 
associados à maneira como classes e objetos são organizados estruturalmente; oferecem formas efetivas 
para usar conceitos OO como herança e composição, e são abstrações de aspectos estruturais. 
O padrão Proxy (procurador) controla o acesso a um objeto através de outro objeto, que atua como seu 
substituto, ou como um envoltório. 
 
 
 
 
 2a Questão 
 
 
Que padrão estrutural provê um ponto de atendimento para que outro objeto possa controlar o acesso ao primeiro: 
 
 
 Proxy 
 
Adapter 
 
Decorator 
 
Facade 
 
Flyweight 
Respondido em 22/04/2019 20:37:56 
 
 
 
 
 3a Questão 
 
 
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? 
 
 Uma aplicação utiliza um grande número de objetos. 
 Os custos de armazenamento são altos por causa da grande quantidade de objetos. 
 Quando for necessário elaborar um algoritmo ou algo complicado para separar objetos mutáveis de 
imutáveis; 
 Muitos grupos de objetos podem ser substituídos por relativamente poucos objetos compartilhados, 
uma vez que estados extrínsecos são removidos. 
 A aplicação não depende da identidade do objeto. 
Respondido em 22/04/2019 20:38:51 
 
 
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).. 
 
 
 
 
 4a Questão 
 
 
Converter a interface de uma classe em outra interface esperada pelos clientes. Permite 
a comunicação entre classes que não poderiam trabalhar juntas devido à 
incompatibilidade de suas interfaces. Para qual padrão de projeto a afirmação se 
relaciona? 
 
 Proxy 
 
Singleton 
 Nra 
 
Observer 
 
Memento 
Respondido em 22/04/2019 20:39:29 
 
 
 
 
 5a Questão 
 
 
Dado o diagrama de classe identifique o padrão GoF estrutual 
 
 
 
Bridge 
 
Decorator 
 Flyweight 
 
Adapter 
 
Proxy 
Respondido em 22/04/2019 20:39:57 
 
 
 
 
 6a Questão 
 
 
O objetivo do padrão Flyweight é diminuir o consumo de memória, porém deve ser utilizado com cautela; Gamma et al (2000). 
 
São várias as recomendações para seu uso. Analise as alternativas abaixoe marque a alternativa que NÃO se refere a uma recomendação 
para uso do padrão Flyweight. 
 
 
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. 
 O cliente não precisar conhecer as regras do negócio. 
 
A aplicação não depende da identidade do objeto. 
Respondido em 22/04/2019 20:41:31 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
 
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. 
 
Decorator. 
 
Composite. 
 
Nenhuma das anteriores. 
 Façade. 
Respondido em 22/04/2019 20:41:58 
 
 
Explicação: 
Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, 
Decorator, Façade, Flyweight e Proxy. 
Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e 
colaboração mutua. 
Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; 
associados à maneira como classes e objetos são organizados estruturalmente; oferecem formas efetivas 
para usar conceitos OO como herança e composição, e são abstrações de aspectos estruturais. 
O padrão Façade é um padrão Fachada, ou seja, faz uma fachada única para todas as fachadas. 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. 
 
 
 
 
 8a Questão 
 
 
O padrão Flyweight é um Padrão Estrutural GoF. Quando não devemos usar esse padrão? 
I- Quando o estado dos objetos não for imutável 
II- Quando o tamanho do conjunto de objetos for significativamente menor que a quantidade de vezes em 
que eles são usados na aplicação; 
III- Quando objetos podem ser usados em diferentes contextos ao mesmo tempo (agindo sempre como 
um objeto independente); 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 Somente os itens I e III; 
 Somente os itens II e III; 
 Somente o item I; 
 Somente os itens I e II; 
 Somente o item II; 
Respondido em 22/04/2019 20:42:47 
 
 
Explicação: 
Os itens II e III estão errados porque é nesta situação que devemos usar esse padrão. 
No item I é preciso passar o estado mutável como parâmetro e isto pode ser impraticável se o estado 
consistir de vários objetos. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
5a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Qual o objetivo do padrão Template Method? Assinale a opção CORRETA. 
 
 É recomendada naquelas situações em que há necessidade de interpretar uma linguagem qualquer e 
ao mesmo tempo quando se quer representar sentenças da linguagem como árvores abstratas 
sintáticas; 
 Definir o esqueleto de um algoritmo dentro de uma operação, deixando alguns passos a serem 
preenchidos pelas subclasses; 
 Dada uma linguagem, definir uma representação para sua gramática junto com um interpretador 
que usa a representação para interpretar sentenças na linguagem; 
 Descreve como projetar um conjunto de classes para representar e interpretar uma gramática para 
linguagens simples; 
 Delega responsabilidades e escreve padrões não só voltados para classe, mas também no que tange 
a comunicação entre essas classes; 
Respondido em 23/04/2019 15:54:55 
 
 
Explicação: 
Essa afirmativa está correta, porque as outras se referem ao padrão Interpreter. 
Além disso, Template Method permite que suas subclasses redefinam certos passos de um algoritmo sem 
mudar sua estrutura. 
 
 
 
 
 2a Questão 
 
 
Qual o objetivo do padrão Interpreter? Assinale a opção CORRETA. 
 
 Fornece uma estrutura fixa, de um algoritmo, esta parte fixa deve estar presente na superclasse, 
sendo obrigatório uma classeAbstrata que possa conter um método concreto; 
 Dada uma linguagem, definir uma representação para sua gramática junto com um interpretador 
que usa a representação para interpretar sentenças na linguagem; 
 Permitir que suas subclasses redefinam certos passos de um algoritmo sem mudar sua estrutura; 
 Preencher certas partes do algoritmo por implementações que irão variar, ou seja, implementar um 
algoritmo em um método, postergando a definição de alguns passos do algoritmo, para que outras 
classes possam redefini-los; 
 Definir o esqueleto de um algoritmo dentro de uma operação, deixando alguns passos a serem 
preenchidos pelas subclasses; 
Respondido em 23/04/2019 15:55:33 
 
 
Explicação: 
Essa afirmativa está correta, porque as outras se referem ao padrão Template Method. 
 
 
 
 
 3a Questão 
 
 
Qual padrão define o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses e permite que subclasses 
redefinam certos passos de um algoritmo sem mudar a estrutura do mesmo? 
 
 Template Method. 
 
Adapter. 
 
Command. 
 
Nenhuma das anteriores. 
 
State. 
Respondido em 23/04/2019 15:56:10 
 
 
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 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. 
 
 
 
 
 4a Questão 
 
 
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); 
 
....... 
 
 
 
 
State 
 
Command 
 Chain of Responsability 
 
Visitor 
 
Observer 
Respondido em 23/04/2019 15:56:46 
 
 
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. 
 
 
 
 
 5a Questão 
 
 
O padrão Classe Handler é um Padrão Comportamental GoF. Qual afirmativa abaixo NÃO corresponde a 
esse padrão? 
 
 Fornece um acoplamento mais fraco por evitar a associação explícita do remetente de uma 
solicitação ao seu receptor e dar a mais de um objeto a oportunidade de tratar a solicitação; 
 Encadeia os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a 
trate; 
 Evita o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a 
oportunidade de tratar a solicitação; 
 Representa um encadeamento de objetos receptores para o processamento de uma série de 
solicitações diferentes; 
 A classe Handler é uma classe abstrata, portanto, não pode ser instanciada diretamente; 
Respondido em 23/04/2019 15:57:19 
 
 
Explicação: 
Essa afirmativa NÃO corresponde a Classe Handler está relacionada ao padrão Chain of Responsability, 
porque ela se refere a padrão Chain of Responsability. 
 
 
 
 
 6a Questão 
 
 
Aponte dentre as opções colocadas aquela que corresponde a estrutura do padrão que sugere que a modelagem do problema seja realizadaatravés de uma gramática recursiva.. 
 
 Interpreter; 
 
Iterator 
 
Mediator 
 
Template Method; 
 Chain of Responsability, 
Respondido em 23/04/2019 15:57:52 
 
 
 
 
 7a Questão 
 
 
São exemplos de Padrões de Projeto Comportamentais: 
 
 
Singleton, Mediator e Strategy 
 Interpreter, Chain of Responsibility e Observer 
 
Mediator, Strategy e Builder 
 
Command, Composite e Memento 
 
State, Flyweight e Decorator 
Respondido em 23/04/2019 15:58:17 
 
 
 
 
 8a Questão 
 
 
(CESGRANRIO - 2008) Muitos frameworks utilizam um padrão de projeto (design pattern) que se baseia no princípio de projeto "Não nos 
chame, nós iremos chamar você" (O Princípio de Hollywood: "Don't call us, we'll call you."). Uma classe da aplicação herda de uma classe do 
framework que possui métodos abstratos, os quais são chamados em outros métodos concretos. A classe da aplicação sobrepõe os métodos 
abstratos da classe do framework com métodos concretos, permitindo que os métodos concretos da classe do framework sejam chamados. 
 
O padrão de projeto (design pattern) em questão chama-se 
 
 
Abstract Factory. 
 Template Method. 
 
Decorator. 
 
Singleton. 
 
Strategy. 
Respondido em 23/04/2019 15:58:47 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
5a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
O padrão Classe Handler é um Padrão Comportamental GoF. Quais os benefícios do padrão de projeto 
Chain of Responsability com a Classe Hanter? 
I- O acoplamento é reduzido, pois, o padrão libera um objeto de ter que conhecer qual o outro objeto que 
trata de uma solicitação; 
II- 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; 
III- Flexibilidade na atribuição de responsabilidades, ou seja, pode-se mudar a cadeia de objetos em 
tempo de execução, adicionando ou removendo objetos; 
IV- A receptação não é garantida, isto é, no momento que a requisição não tem um receptor explícito, não 
há garantias que ela será tratada; 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 Somente os itens II e III; 
 Somente os itens I, II e III; 
 Somente os itens III e IV; 
 Somente os itens II, III e IV; 
 Somente os itens I e II; 
Respondido em 23/04/2019 15:59:49 
 
 
Explicação: 
O item IV é uma deficiência, e não uma vantagem. 
 
 
 
 
 2a Questão 
 
 
O método Arrays.sort (java.util) recebe como parâmetro um objeto do tipo Comparator que implementa um método compare(a, b) e utiliza-o 
para definir as regras de ordenação, assim evitamos duplicidade de código permitindo sobrescrita apenas do critério de comparação do 
algoritmo de ordenação, no qual os outros passos permanecem invariantes. Essa situação exemplifica qual dos padrões GOF abaixo: 
 
 
Command 
 
Builder 
 Template Method 
 
Flyweight 
 
State 
Respondido em 23/04/2019 16:00:20 
 
 
 
 
 3a Questão 
 
 
Qual padrão usar para definir uma representação de uma linguagem para sua gramática junto a um interpretador que sua representação para 
interpretar essas sentenças? 
 
 
Iterator. 
 
Nenhuma das anteriores. 
 Interpreter. 
 
Strategy. 
 
Visitor. 
Respondido em 23/04/2019 16:00:45 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, 
Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
O INTERPRETER tem a função de interpretar, interfacear delegando responsabilidade. 
Ao padrões comportamentais tem como premissa se preocupar com algoritimos, 
Não só com algoritimos, mas com a relação entre objetos. 
Não escreve padrões não só voltados para classe, mas também no que tange a comunicação 
entre essas classes. 
 
 
 
 
 4a Questão 
 
 
Baseando-se nas necessidades apresentadas do lado direito do quadro abaixo, relacione-as ao padrão adequado a utilização e, em seguida 
marque a alternativa que corresponde a sequencia numerada correspondente. 
 
 
 
4 - 1 - 2 - 3 
 
2 - 3 - 4 - 1 
 4 - 3 - 1 - 2 
 3 - 4 - 1 - 2 
 
4 - 2 - 1 - 3 
Respondido em 23/04/2019 16:01:52 
 
 
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. 
 
 
 
 5a Questão 
 
 
O padrão Chain of Responsability é um Padrão Comportamental GoF. Qual o seu objetivo? Assinale a 
afirmativa INCORRETA 
 
 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; 
 Evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto 
a oportunidade de tratar a solicitação; 
 Encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a 
trate; 
 Fornecer um acoplamento mais fraco por evitar a associação explícita do remetente de uma 
solicitação ao seu receptor e dar a mais de um objeto a oportunidade de tratar a solicitação; 
 Representar um encadeamento de objetos receptores para o processamento de uma série de 
solicitações diferentes; 
Respondido em 23/04/2019 16:02:53 
 
 
Explicação: 
Essa afirmativa está relacionada ao padrão Chain of Responsability, porque ela se refere a padrão Classe 
Hanter. 
 
 
 
 
 6a Questão 
 
 
Analise as sentenças abaixo. 
 
I - A estrutura do padrão interpreter sugere que a modelagem do problema seja realizada através de uma gramática procedural. 
 
II - O padrão Interpreter tem como desvantagem definir uma classe para cada gramática, pois quando se tem muitas gramáticas, são difíceis 
de manter e administrar. 
 
III - No padrão de projeto Template Method as partes que podem variar, conforme a situação, contexto ou problema a ser resolvido, são 
redefinas nas classes derivadas (concretas). 
 
IV - O padrão de projeto Template Method sugere a implementação de um algoritmo fixo em uma superclasse abstrata onde se consegue 
alterar o comportamento do algoritmo, sem modificar sua estrutura lógica. 
 
Marque a opção correta. 
 
 I - II - III 
 
III - IV 
 II - III - IV 
 
I - III - IV 
 
I - II - IV 
Respondido em 23/04/2019 16:04:18 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
 
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. 
 
 
alto acoplamento; 
 
Generalizada; 
 
com método púbico; 
 
baixa coesão. 
 concretas; 
Respondido em 23/04/2019 16:05:00 
 
 
Gabarito 
Coment. 
 
 
 
 
 8a Questão 
 
 
Marque a única alternativa correta sobre um cenário de aplicação do padrão de projeto Template Method 
 
 
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 
 
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) 
Respondido em 23/04/2019 16:05:55 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
5a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Qual padrão se define uma dependência um-para-muitos entre objetos de forma que quando o objeto muda de estado todos os seus 
dependentes são notificados e atualizados automaticamente? 
 
 
State. 
 Observer. 
 
Nenhuma das anteriores. 
 Chain of Responsability. 
 
Memento. 
Respondido em 23/04/2019 16:06:50Explicaçã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 Observer define uma dependência um para muitos, que será necessária para fazer a relação 
entre um conjunto de dados e várias representações, além de permitir que, quando um objeto mude de 
estado, todos os dependentes sejam notificados. 
 
 
 
 
 2a Questão 
 
 
Para fazer a modelagem de um padrão de projeto (design pattern) utilizando a UML é DESNECESSÁRIO. 
 
 
entender o padrão de projeto como uma colaboração representada com suas partes estruturais e comportamentais. 
 
identificar as soluções comuns para o problema básico. 
 identificar as soluções específicas e particulares para o problema básico e reificá-la como um mecanismo. 
 fazer a modelagem do mecanismo como uma colaboração, fornecendo seus aspectos estruturais, assim como os aspectos 
comportamentais. 
 
identificar os elementos do padrão de projeto que devem ser vinculados aos elementos em um contexto específico e representá-los 
como parâmetros para colaboração. 
Respondido em 23/04/2019 16:07:49 
 
 
Explicação: 
Na UML, modelamos os Casos de Uso, identificando os atores e definindo os Casos de Uso por Ator, construímos o Diagrama de Casos de Uso, 
modelamos as Classes Negociais, construímos o Diagrama de Transição de Estado e refinamos as Classes com suas operações. 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
 
Os padrões de comportamento correspondem a: 
 
 
Todas as alternativas estão erradas 
 
Iterador, Mediator, Bridge, Composite, Decorator, Façade, Flyweight e Proxy 
 
Adapter, Bridge, Composite, Decorator, Façade, flyweight e proxy 
 Chain of Responsability, Command, Interpreter, Iterador, Mediator, Memento, Observer, State, Strategy, Template Method e 
Visitor 
 
Abstract Factory, Builder, Factory Method, Prototype e Singleton. 
Respondido em 23/04/2019 16:08:19 
 
 
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. 
 
 
 
 
 4a Questão 
 
 
O padrão Chain of Responsability é um Padrão Comportamental GoF. Qual afirmativa abaixo não está 
relacionada a esse padrão? 
 
 Reduz a interconexão entre os objetos, ao invés de um objeto manter uma lista com todos os 
receptores candidatos, ele mantém uma referência única para o sucessor; 
 Representa um encadeamento de objetos receptores para o processamento de uma série de 
solicitações diferentes; 
 Os objetos receptores passam a solicitação ao longo da cadeia até que um ou vários objetos a 
tratem; 
 Fornece um acoplamento mais fraco por evitar a associação explícita do remetente de uma 
solicitação ao seu receptor e dar a mais de um objeto a oportunidade de tratar a solicitação; 
 Cada objeto receptor possui uma lógica descrevendo os tipos de solicitação que é capaz de processar 
e como passar adiante aquelas que requeiram processamento por outros receptores; 
Respondido em 23/04/2019 16:08:55 
 
 
Explicação: 
Essa afirmativa está relacionada ao padrão Chain of Responsability, porque ela se refere a padrão Classe 
Handler. 
 
 
 
 
 5a Questão 
 
 
Qual padrão define o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses e permite que subclasses 
redefinam certos passos de um algoritmo sem mudar a estrutura do mesmo? 
 
 Template Method 
 
Command 
 
State 
 
Adapter 
 
Nenhuma das anteriores 
Respondido em 23/04/2019 16:09:18 
 
 
Explicação: 
Os padrões de comportamento se concentram nos algoritmos e atribuições de responsabilidades entre os 
objetos. Eles não descrevem apenas padrões de objetos ou de classes, mas também os padrões de 
comunicação entre os objetos. 
Há três grupos de Padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais 
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 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. 
 
 
 
 
 6a Questão 
 
 
O padrão GoF Comportamental utilizado: 
 
 
 Observer 
 
Iterator 
 
Interpreter 
 Template Method 
 
Mediator 
Respondido em 23/04/2019 16:09:57 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, 
Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
O padrão Observer define uma dependência um para muitos, que será necessária para fazer a relação 
entre um conjunto de dados e várias representações, além de permitir que, quando um objeto mude de 
estado, todos os dependentes sejam notificados. 
 
 
 
 
 7a Questão 
 
 
(BACEN ¿ CESGRANRIO 2010) 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 
 
 
Template Method utiliza compartilhamento para suportar, eficientemente, grandes quantidades de objetos de granularidade fina. 
 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. 
 
Singleton separa uma abstração de sua implementação, de modo que os dois conceitos possam variar de modo independente. 
 
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. 
Respondido em 23/04/2019 16:11:04 
 
 
 
 
 8a Questão 
 
 
Aponte dentre as opções abaixo aquela que corresponde ao padrão que apresenta como uma desvantagens, a obrigatoriedade da definição de 
ao menos, uma classe para cada regra da gramática, logo, gramáticas com muitas regras são difíceis de manter e administrar. 
 
 
Façade; 
 
Template Method; 
 
Chain of Responsability; 
 
Proxy; 
 Interpreter; 
Respondido em 23/04/2019 16:11:42 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
6a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Qual padrão captura e externaliza um estado interno de um objeto para que o objeto possa ser restaurado para este estado mais tarde sem 
violar o encapsulamento? 
 
 
Observer. 
 
State. 
 Memento. 
 
Visitor. 
 
Nenhuma das anteriores. 
Respondido em 01/06/2019 15:41:37 
 
 
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 Memento tem como objetivo criar um meio de armazenar informaçõessobre 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. 
 
 
 
 
 2a Questão 
 
 
As principais aplicabilidades do padrão command de projeto são: 
 
I) permitir fácil inclusão de novos comandos; 
II) permitir tratamento de requisições concorrentes, manter histórico de execução de comandos; 
III) suportar operações para desfazer comandos e; 
IV) evitar o acoplamento direto entre classes e serviços. 
 
Podemos a firmar com certeza que: 
 
 As afirmativas I, II, III e IV estão corretas. 
 
As afirmativas II, III ,IVestão corretas e a afirmativa I está errada. 
 
As afirmativas I, II, III estão erradas e IV correta. 
 
As afirmativas I, II, IV estão corretas e a afirmativa III está errada. 
 
As afirmativas I, III, IVestão corretas e II errada. 
Respondido em 01/06/2019 15:42:19 
 
 
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 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. 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
 
i) Iterator fornece uma maneira de acessar elementos de um objeto agregado seqüencialmente, sem expor sua representação interna. 
ii) Mediator oferece uma interface única de nível mais elevado para um conjunto de interfaces de um subsistema. 
iii) Observer define uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado, os seus dependentes sejam 
notificados e atualizados automaticamente. 
Em relação aos itens acima está correto: 
 
 somente a i e iii 
 somente a ii e iii 
 
somente a i 
 
somente a ii 
 
somente a i e ii 
Respondido em 01/06/2019 15:43:11 
 
 
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 item II está errado porque 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. 
 
 
 
 
 4a Questão 
 
 
(FCC - 2010) Em relação aos padrões de projetos orientados a objetos, separar dados ou lógica de negócios da interface do usuário e do fluxo 
da aplicação para permitir que uma mesma lógica de negócios possa ser acessada e visualizada através de várias interfaces, sem saber de 
quantas nem quais interfaces com o usuário estão exibindo seu estado, é característica do padrão de projeto arquitetural 
 
 Model-View-Controller. 
 
Layers. 
 
Observer. 
 
Creator. 
 
Expert. 
Respondido em 01/06/2019 15:44:06 
 
 
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. 
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. 
 
 
 
 5a Questão 
 
 
Iterator :Fornecer uma maneira de acessar seqüencialmente os elementos de um objeto agregado sem expor sua implementação. (Gamma et 
al., 2000). Sobre este padrão de projetos podemos afirma com certeza: 
 
 
tem uma grande facilidade de mudança de comportamento, pode-se alterar seu funcionamento sem que seja necessário nenhuma 
mudança nas demais classes envolvidas, desde que envolvam coleções e matrizes. 
 Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de implementação. 
 
É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos 
 
É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos, mas não deve ser usado 
quando associado a percorrer arrays ou tabelas. 
 
Considerando objetos que implementam arrays, pode ser visto como uma classe intermediária de comunicação e gerenciamento, 
evitando que os objetos se comuniquem de forma direta 
Respondido em 01/06/2019 15:45:04 
 
 
Explicação: 
Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais: 
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. São abstrações de aspectos comportamentais. 
Há 11 padrões comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, 
Template Method e Visitor. 
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.". 
 
 
 
 6a Questão 
 
 
A implementação do padrão Memento é bastante simples. Normalmente é criada uma classe privada chamada Memento (ou outro nome com 
funcionalidades similar) dentro da classe que se pretende salvar o estado. A classe Memento deve ser instanciada com os atributos que se 
pretende salvar, fornecendo para tanto ------------------------ Marque dentre as opções abaixo aquela que complementa a lacuna acima de 
forma correta. 
 
 um construtor público para este fim. 
 
Utilizar uma classe associativa para o fim desejado. 
 
Utilizar um outro padrão comportamental que complemente o objetivo. 
 
um construtor privado para este fim. 
 
Uma classe com método publico para este fim; 
Respondido em 01/06/2019 15:45:43 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
 
Command : Encapsula uma solicitaçãocomo um objeto, permitindo a parametrização de clientes com diferentes solicitações, o enfileiramento 
e o registro de solicitações e o suporte a operações que possam ser desfeitas. (Gamma et al., 2000). Sobre ele podemos afirmar com toda a 
certeza: 
 
 
Nesta abordagem o objeto que está realizando a chamada do método precisa conhecer com detalhes a implementação em relação 
asparente ao local, tempo e ao objeto que vai realizar uma determinada tarefa 
 
Este padrão de projeto oferece pouca flexibilidade na arquitetura do sistema, uma vez que não permite adição de novas 
funcionalidades 
 
esta abordagem é que o objeto que está realizando a chamada do método precisa conhecer com detalhes sobre seu 
funcionamento. 
 
Os métodos, nesta abordagem devem ser padronizados e hierarquizados de forma que a implementação trabalhe novos objetos. 
 O objetivo do padrão de projeto Command é encapsular chamadas de métodos. 
Respondido em 01/06/2019 15:46:49 
 
 
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 Chain of Responsibility, Command, Interpreter, Iterator, Mediator, 
Memento, Observer, State, Strategy, Template Method e Visitor. 
Os Padrões Comportamentais são projetados para organizar, gerenciar e combinar diferentes comportamentos. 
Segundo Gamma et al, ¿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.¿. 
 
 
 
 8a Questão 
 
 
O padrão Mediator é um Padrão Comportamental GoF. Como permitir que um grupo de objetos se 
comuniquem entre si sem que haja acoplamento entre eles? 
I- Por exemplo, fazer chamadas. Eu quero chamar o colaborador 1, que quer chamar o colaborador 2. 
tenho que ter uma referência no colaborador 1para poder chamar o colaborador 2; 
II- Por exemplo, fazer chamadas. Eu quero chamar o colaborador 1. Qualquer mudança no 2 impactaria no 
1. da mesma forma, teria que ter um acoplamento entre as classes 2 e 3 para poder fazer essa referência. 
E isso é um grau de acoplamento que eu NÃO desejo; 
III- Onde eu tenho um objeto que combina com vários e vários que se combinam com vários. Ou seja, a 
retirada de um objeto desse causaria, devido ao seu forte acoplamento, uma redefinição, uma refatoração, 
dos códigos aqui presentes; 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 Somente o item III; 
 Somente os itens I e II; 
 Somente o item II; 
 Somente o item I; 
 Somente os itens II e III; 
Respondido em 01/06/2019 15:53:05 
 
 
Explicação: 
O item III está incorreto, porque ocorre quando eu quero remover o forte acoplamento presente em 
relacionamentos muitos para muitos. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
6a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Quando encapsulamos requisições de usuários na forma de objetos estamos utilizando o padrão de projeto: 
 
 
Façade 
 
Chain of Responsability 
 
State 
 
Strategy 
 Command 
Respondido em 01/06/2019 15:54:18 
 
 
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. 
 
 
 
 
 2a Questão 
 
 
Qual padrão usar para fornecer um meio de acessar sequencialmente os elementos de um objeto agregado sem expor a sua representação 
subjacente? 
 
 
Visitor. 
 Iterator. 
 
Mediator. 
 
Nenhuma das anteriores. 
 
Chain of Responsability. 
Respondido em 01/06/2019 15:54:35 
 
 
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.". 
 
 
 
 
 3a Questão 
 
 
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 Visitor; 
 
Padrão Proxy; 
 
Padrão Memento; 
 
Padrão Mediator; 
 Padrão Iterator; 
Respondido em 01/06/2019 15:55:03 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
 
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? 
 
 
Nenhuma das anteriores. 
 
Strategy. 
 
State. 
 Command. 
 Mediator. 
Respondido em 01/06/2019 15:55:15 
 
 
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. 
 
 
 
 
 5a Questão 
 
 
O padrão de projeto Comand apresenta uma serie aplicabilidades. Assinale dentre as opções abaixo a unica que não esta correta. permitir fácil 
inclusão de novos comandos,permitir isições concorrentes, manter histórico de execução de comandos, suportar operações para desfazer 
comandos e, principalmente, evitar o acoplamento direto entre classes e serviços. permitir tratamento de requ 
 
 
permitir tratamento de requisições concorrentes; 
 
Evitar o acoplamento direto entre classes e serviços; 
 Permitir em casos excepcionais o acoplamento direto entre classes e serviços; 
 
Manter histórico de execução de comandos; 
 
permitir fácil inclusão de novos comandos 
Respondido em 01/06/2019 15:56:30 
 
 
 
 
 6a Questão 
 
 
Existe um padrão de projeto que é bastante utilizado em programação de sistema para gerenciar a comunicação entre dois ou mais objetos. 
Ele pode servisto como uma classe intermediária de comunicação e gerenciamento, evitando que os objetos se comuniquem de forma direta. 
Dentre as opções abaixo assinale aquela que está correta para a colocação acima. 
 
 
Padrão Memento 
 
Command; 
 
Padrão Proxy; 
 Padrão Mediator; 
 
Padrão Interator; 
Respondido em 01/06/2019 15:56:55 
 
 
 
 
 7a Questão 
 
 
O padrão Iterator é um Padrão Comportamental GoF. Qual o objetivo desse padrão? Assinale a única 
resposta CORRETA 
 
 Prover uma maneira de acessar os elementos de um objeto agregado sequencialmente sem expor 
sua representação interna; 
 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; 
 Promover o acoplamento fraco ao evitar que os objetos se refiram explicitamente uns aos outros, 
permitindo que você varie suas interações independentemente; 
 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; 
 Encapsular uma requisição como um objeto, permitindo que clientes parametrizem diferentes 
requisições, filas ou requisições de log, e suportar operações reversíveis; 
Respondido em 01/06/2019 15:57:15 
 
 
Explicação: 
Essa afirmativa está correta, porque as outras afirmações se referem aos padrões Command, Mediator e 
Memento. 
De acordo com Gamma et. al. 2000, esse padrão fornece uma maneira de acessar 
seqüencialmente os elementos de um objeto agregado sem expor sua implementação. 
 
 
 
 
 8a Questão 
 
 
O padrão Memento tem como objetivo criar um meio de armazenar informações e um objeto, permitindo acessar essas informações tanto 
para salvar o estado de um objeto específico, com Criar uma classe que permita salvar o estado pretendidoo para recuperar, sempre que for 
necessário. No entanto, muitas vezes o estado interno de um objeto é inacessível a objetos externos. Assinale dentre as opções abaixo aquela 
que se constitui em uma das maneiras de guardar este tipo de informação, 
 
 Criar um clone do objeto, com as informações do estado a ser armazenado; 
 
Definir um padrão auxiliar que permita o acesso a estas classes; 
 
Criar uma classe que permita salvar o estado pretendido 
 
Criar uma classe privada para o padrão Proxy dentro da classe que que se pretende salvar o estado; 
 
Criar uma classe pública dentro da classe que se pretende salvar o estado; 
Respondido em 01/06/2019 15:58:19 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
6a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
(UNEAL - COPEVE 2010) Definir um objeto que encapsula a forma como um conjunto de objetos interage. Promove o acoplamento fraco ao 
evitar que os objetos se refiram uns aos outros explicitamente. Qual opção abaixo corresponde à descrição anterior? 
 
 
Intenção do padrão de projeto proxy 
 Intenção do padrão de projeto mediator 
 
Intenção do padrão de projeto composite 
 Intenção do padrão de projeto command 
 
Intenção do padrão de projeto strategy 
Respondido em 01/06/2019 15:59:00 
 
 
 
 
 2a Questão 
 
 
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 proxy 
 
Intenção do padrão de projeto strategy 
 
Intenção do padrão de projeto prototype 
 Intenção do padrão de projeto mediator 
 
Intenção do padrão de projeto composite 
Respondido em 01/06/2019 15:59:13 
 
 
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. 
 
 
 
 
 3a Questão 
 
 
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: 
 
 
Command 
 Memento 
 
Mediator 
 
Iterator 
 
Builder. 
Respondido em 01/06/2019 15:59:37 
 
 
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. 
 
 
 
 4a Questão 
 
 
São vantagens da arquitetura MVC, EXCETO: 
 
 
permitir interfaces mais sofisticadas com o usuário. 
 poder ser utilizada em aplicações simples ,sem sobrecarregar o desenvolvimento com componentes desnecessários. 
 
garantir um crescimento constante da aplicação. 
 possuir melhor separação de responsabilidades. 
 
permitir a distribuição dos elementos da aplicação. 
Respondido em 01/06/2019 16:00:08 
 
 
Explicação: 
Essa afirmativa não é uma vantagem porque: 
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. 
 
 
 
 
 5a Questão 
 
 
Assinale dentre as opções abaixo aquela que corresponde ao objetivo do padrão de projeto Command. 
 
 
Disponibilizar o uso do método private. 
 
disponibilizar chamadas de métodos. 
 
disponibilizar o acesso aos aobjetos 
 
encapsular chamadas dos objetos; 
 .encapsular chamadas de métodos. 
Respondido em 01/06/2019 16:00:32 
 
 
 
 
 6a Questão 
 
 
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. 
 
 
Decorator 
 
Interpreter 
 Iterator 
 
Visitor 
 
Command 
Respondido em 01/06/2019 16:01:00 
 
 
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 arealizaçã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.". 
 
 
 
 
 7a Questão 
 
 
O padrão Memento é um Padrão Comportamental GoF. Como se dá a implementação desse padrão? 
I- Cria-se uma classe privada chamada Memento (ou outro nome com funcionalidades similar) dentro da 
classe que se pretende salvar o estado; 
II- Define um objeto que encapsula a forma como um conjunto de objetos interage. Memento promove o 
acoplamento fraco ao evitar que os objetos se refiram explicitamente uns aos outros, permitindo que você 
varie suas interações independentemente; 
III- A classe Memento deve ser instanciada com os atributos que se pretende salvar, fornecendo um 
construtor público para este fim; 
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 01/06/2019 16:01:37 
 
 
Explicação: 
O objetivo do padrão Memento é captar e externalizar um estado interno de um objeto, de maneira que 
esse estado seja restaurado ao objeto em outro momento, sem violar seu encapsulamento 
O item II está incorreto, porque isso ocorre para o padrão Mediator. 
 
 
 
 
 8a Questão 
 
 
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. 
 Command. 
 
Mediator. 
Respondido em 01/06/2019 16:01:58 
 
 
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 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
7a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
considere a definição: Visitor: Representar uma operação a ser realizada nos elementos de uma estrutura de objetos. Visitor permite que você 
defina uma nova operação sem alterar as classes dos elementos nos quais a operação atua (Gamma et al., 2000). Qual das alternativas é 
completamente verdadeira? 
 
 O padrão de projeto acima é indicado para ser utilizado quando uma abstração tem dois aspectos, um dependente do outro. 
Encapsular tais aspectos em objetos separados permite que variem e sejam reusados separadamente; 
 
O principal objetivo do padrão acima é conservar as funcionalidades em não se permita adicionar novas, E obriga que haja 
necessidade de alterar sua implementação 
 O principal objetivo do padrão acima é permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas, sem 
que haja necessidade de alterar sua implementação. 
 
O padrão de projeto acima deve ser utilizado não somente quando o comportamento de um objeto depende do seu estado, podendo 
ser alterado em tempo de execução, mas também quando a funcionalidade de um objeto possui condicionais grandes. 
 
A idéia principal do padrão acima é implementar diferentes algoritmos em uma hierarquia de classes, onde cada um deles pode ser 
substituído por outro, independente do cliente que o utiliza. 
Respondido em 02/06/2019 11:27:04 
 
 
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á 11 padrões comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, 
Template Method e Visitor. 
Esta definição se refere ao Padrão Visitor. 
Memento é um padrão comportamental, assim como os seguintes padrões: command, iterator, mediator. 
O principal objetivo do padrão Visitor é permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas, sem que haja 
necessidade de alterar sua implementação. 
O padrão Visitor representa 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. 
 
 
 
 2a 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. 
 
 
Visitor 
 
Observer 
 
Memento 
 State 
 
Strategy 
Respondido em 02/06/2019 11:27:40 
 
 
 
 
 3a Questão 
 
 
Qual padrão permite a um objeto alterar seu comportamento quando o seu estado interno muda parecendo que ele alterou sua classe? 
 
 
Nenhuma das anteriores. 
 State. 
 
Mediator. 
 
Builder. 
 
Observer. 
Respondido em 02/06/2019 11:27:52 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, 
Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. 
State - Permiti a um objeto alterar o seu comportamento quanto o seu estado interno mudar. O objeto irá 
aparentar mudar de classe. 
 
 
 
 
 4a Questão 
 
 
O padrão de projeto State deve ser implementado não somente quando o comportamento de um objeto depende do seu estado, mas também 
quando a funcionalidade de um objeto possui _______________; Complete a lacuna com a opção correta. . 
 
 condicionais grandes; 
 
padrão bridge; 
 
Atributos valorados; 
 
agreagações; 
 
padrão visitor; 
Respondido em 02/06/2019 11:28:31 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
 
O padrão GoF comportalmental utilizado: 
 
 
 
Observer 
 
State 
 
Memento 
 Strategy 
 Iterator 
Respondido em 02/06/2019 11:30:37 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, 
Mediator, Memento, Observer, State, Strategy, Template Method 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. 
 
 
 
 
 6a Questão 
 
 
Observando a figura abaixo, determine o padrão GOF caracterizado pela mesma: 
 
 
 
 Padrão State 
 
Padrão Template Method 
 
Padrão Façade 
 
Padrão Singleton 
 Padrão Strategy 
Respondido em 02/06/2019 11:28:49 
 
 
Explicação: 
Os Padrões Comportamentais são projetados para organizar, gerenciar e combinar diferentes 
comportamentos. 
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. 
 
 
 
 
 7a Questão 
 
 
Qual padrão representa uma operação a ser executada nos elementos de uma estrutura de objetos e permite definir uma nova operação sem 
mudar as classesdos elementos sobre os quais operar? 
 
 Visitor. 
 
Bridge. 
 
Decorator. 
 
Memento. 
 
Nenhuma das anteriores. 
Respondido em 02/06/2019 11:29:16 
 
 
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 Visitor representa 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. 
 
 
 
 
 8a 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. 
 
 
Observer, uma vez que o controlador precisa monitorar os níveis de dificuldade. 
 State, uma vez que este padrão possui o propósito de facilitar mudanças dinâmicas na execução dos métodos. 
 
Command, uma vez que cada nível de dificuldade representa um comando complementar do jogo, representando, assim, diferentes 
formas de acionar o jogo. 
 
Chain of Responsability, uma vez que não se sabe a priori qual o nível de dificuldade que será utilizado, variando no decorrer da 
execução. 
 
Composite, pois os diversos níveis de dificuldade estão representados através de uma hierarquia bem definida. 
Respondido em 02/06/2019 11:29:55 
 
 
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 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 
7a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
(COPEVE-UFAL - 2011) O diagrama de classes apresentado na figura não representa fielmente um buffer que passa por estados sucessivos de 
transformação. Em outras palavras, um buffer, que está inicialmente vazio, depois pode ficar parcialmente cheio e, possivelmente, pode ficar 
cheio. 
 
 
Dentre as opções apresentadas a seguir, qual o padrão de projetos que melhor se adequaria para modelar essa característica dinâmica do 
buffer? 
 
 State. 
 
Dynamic behavior. 
 
Composite. 
 
Mediator. 
 
Singleton. 
Respondido em 02/06/2019 11:34:03 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
 
O principal objetivo do Padrão Visitor é: 
 
 
Fornecer um guia de como instanciar objetos e classes. 
 
Criar uma maneira de separar um algoritmo genérico da estrutura de um objeto. 
 
Criar um acoplamento forte entre os objetos, tendo em vista que um objeto deve ser capaz de avisar outros fazendo suposições 
sobre quem são os objetos. 
 Permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas, sem que haja necessidade de alterar sua 
implementação. 
 
Quando uma abstração tem dois aspectos, um independente do outro, de impedir o encapsulamento de tais aspectos em objetos 
separados. 
Respondido em 02/06/2019 11:35:25 
 
 
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á 11 padrões comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, 
Template Method e Visitor. 
O padrão Visitor representa 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. 
 
 
 
 3a 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; 
 
State; 
 Strategy 
 
Visitor; 
 
Proxi; 
Respondido em 02/06/2019 11:36:06 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a 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 III; 
 Somente o item II; 
 Somente o item III; 
 Somente o item I; 
 Somente os itens I e II; 
Respondido em 02/06/2019 11:37:03 
 
 
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. 
 
 
 
 
 5a Questão 
 
 
Marque a alternativa que está relacionada com o padrão de projeto que permite definir uma nova operação sem mudar as classes dos 
elementos sobre os quais opera. 
 
 
Memento 
 Visitor 
 
State 
 
Observer 
 
Strategy 
Respondido em 02/06/2019 11:37:34 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
 
Qual padrão é melhor usado para um sistema Desktop? 
 
 Memento; 
 Strategy; 
 Observer; 
 State; 
 Visitor; 
Respondido em 02/06/2019 11:37:50 
 
 
Explicação: 
Esta opção está correta porque o objetivo do padrão Observer é 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. 
O Observer tem uma característica diferente. É muito usado em sistema desktop. 
 
 
 
 
 7a Questão 
 
 
Dentre as opções abaixo identifique aquela que corresponde ao padrão de projeto, cujo principal objetivo, é permitir que sejam adicionadas 
novas funcionalidades a classes previamente concebidas sem que haja necessidade de alterar sua implementação. 
 
 
Interpreter 
 
Strategy; 
 Visitor; 
 
State; 
 
Criador; 
Respondido em 02/06/2019 11:38:17 
 
 
 
 
 8a Questão 
 
 
O padrão de projeto que deve ser utilizado não somente quando o comportamento de um objeto depende do seu estado, podendo ser alterado 
em tempo de execução, mas também quando a funcionalidade de um objeto possui condicionais grandes, chama-se: 
 
 
Interpreter; 
 
Strategy; 
 
Visitor ; 
 
Proxy; 
 State; 
Respondidoem 02/06/2019 11:38:31 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
7a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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. 
 
 
Memento 
 
Visitor 
 Strategy 
 State 
 
Observer 
Respondido em 02/06/2019 11:40:35 
 
 
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 
Coment. 
 
 
 
 
 2a 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? 
 
 
Controller 
 
Indirection 
 
Bridge 
 MVC 
 
Chain of Responsibility 
Respondido em 02/06/2019 11:40:56 
 
 
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. 
 
 
 
 
 3a 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? 
 
 
Nenhuma das anteriores. 
 Strategy. 
 
Visitor. 
 
Decorator. 
 
Template Method. 
Respondido em 02/06/2019 11:41:16 
 
 
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. 
 
 
 
 
 4a Questão 
 
 
Qual a diferença entre o padrão Strategy e State? 
 
 A diferença do Strategy para o State, é que no Strategy vou trabalha apenas com o estado da 
classe Conectado. 
 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 eu vou encapsular. 
 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. 
Respondido em 02/06/2019 11:42:13 
 
 
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 
 
 
 
 
 5a Questão 
 
 
Quando usamos padrão Strategy, qual a ideia que eu pretendo com ele? 
I- A ideia é que, toda vez que esse mude um objeto, outros objetos fiquem sabendo automaticamente; 
II- A ideia é encapsular códigos, algoritmos, tal que eu possa utilizar em vários objetos; 
III- A ideia é criar objetos que possam atender as várias estratégias; 
Est(á)ão correta(s) a(s) afirmativa(s): 
 
 Somente o item III; 
 Somente os itens I e II; 
 Somente os itens II e III; 
 Somente o item I; 
 Somente o item II; 
Respondido em 02/06/2019 11:43:18 
 
 
Explicação: 
O item I está INCORRETO, porque essa é a ideia do padrão Observer. 
O objetivo do padrão Strategy é definir 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. 
 
 
 
 
 6a Questão 
 
 
Qual padrão representa uma operação a ser executada nos elementos de uma estrutura de objetos e permite definir uma nova operação sem 
mudar as classes dos elementos sobre os quais operar? 
 
 
Nenhuma das anteriores. 
 
Bridge. 
 Visitor. 
 
Memento. 
 Decorator. 
Respondido em 02/06/2019 11:44:10 
 
 
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 Visitor representa 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. 
 
 
 
 
 7a Questão 
 
 
O padrão GoF comportalmental utilizado: 
 
 
 
Iterator 
 
State 
 
Observer 
 Strategy 
 
Memento 
Respondido em 02/06/2019 11:44:18 
 
 
Explicação: 
Há 11 Padrões Comportamentais GoF: Chain of Responsibility, Command, Interpreter, Iterator, 
Mediator, Memento, Observer, State, Strategy, Template Method 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. 
 
 
 
 
 8a 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. 
 
 
Command, uma vez que cada nível de dificuldade representa um comando complementar do jogo, representando, assim, diferentes 
formas de acionar o jogo. 
 State, uma vez que este padrão possui o propósitode facilitar mudanças dinâmicas na execução dos métodos. 
 
Observer, uma vez que o controlador precisa monitorar os níveis de dificuldade. 
 
Composite, pois os diversos níveis de dificuldade estão representados através de uma hierarquia bem definida. 
 
Chain of Responsability, 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 02/06/2019 11:44:25 
 
 
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 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 
8a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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(); } 
 
 Pure Fabrication 
 
High Coesion 
 
Variation 
 
Indirection 
 Information Expert 
Respondido em 02/06/2019 20:07:49 
 
 
Explicação: 
Padrões GRASP: Expert (Especialista), Creator (Criador), High Coesion, Low Coupling (Baixo 
Acoplamento), Controller. 
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. 
 
 
 
 
 2a Questão 
 
 
 
Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que: 
 
 
 
Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 
Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 
Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa 
tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem 
a responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 
Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe 
Engenheiro tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. 
Respondido em 02/06/2019 20:10:28 
 
 
 
 
 3a Questão 
 
 
 
Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que: 
 
 Padrão Criador: a Classe Cliente tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Empréstimo tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo. 
 
Padrão Criador: a Classe Cliente tem a responsabilidade de criar instâncias da classe Parcela. Padrão Especialista: a Classe Parcela 
tem a responsabilidade de saber quais são as parcelas devedoras. 
 
Padrão Criador: a Classe Parcela tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Parcela tem a responsabilidade de saber quais são as parcelas devedoras. 
 
Padrão Criador: a Classe Empréstimo tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Empréstimo tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo. 
 
Padrão Criador: a Classe Empréstimo tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Parcela tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo. 
Respondido em 02/06/2019 20:12:03 
 
 
Explicação: 
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. 
Creator (Criador) - O Creator do GoF está focando um problema específico (por exemplo, encapsulando 
código), este não, é decidir quem é o responsável por criar determinado recurso, ou artefato, e escolher 
quem vai criar. 
A criação de objetos é uma das mais comuns atividades em um sistema orientado a objetos. Descobrir 
qual classe é responsável por criar objetos é uma propriedade fundamental da relação entre objetos de 
classes particulares. 
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 
 
 
 
 
 4a Questão 
 
 
Utilizando a nomenclatura dos padrões GRASP, o padrão Criador assume que tipo de responsabilidade? 
 
 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 estimar, pois sua funcionalidade está relacionada com a resposta a 
seguinte pergunta: Quem deve criar um objeto A? 
 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 julgar, 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? 
Respondido em 02/06/2019 20:12:48 
 
 
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. 
 
 
 
 
 5a Questão 
 
 
Pode-se sucintamente definir o padrão Variation do GRASP como: 
 
 Criar classe que resolva problemas de inconsistência, criando adaptações para saná-las. 
 
Criar classes altamente coesas. 
 
Criar classes que permitam sobrecarga e sobreescrita. 
 
Criar classes controladoras. 
 Criar camadas para melhor organizar a aplicação. 
Respondido em 02/06/2019 20:13:23 
 
 
 
 
 6a Questão 
 
 
Marque a alternativa que apresenta apenas padrões GRASP? 
 
 
Controlador, polimorfismo e Memento 
 
Observer, visitor, strategy 
 
Coesão alta, controlador, strategy 
 Coesão alta, controlador e polimorfismo 
 
Coesão alta, polimorfismo, visitor 
Respondido em 02/06/2019 20:13:57 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, HighCoesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
 
 
 
 7a Questão 
 
 
qual das afirmativas abaixo não é verdadeira. 
 
 
acoplamento é o grau de dependência entre dois artefatos. É uma medida de quão forte um elemento está conectado ou tem 
conhecimento de, ou depende de outros elementos. 
 
Dessa forma o padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo. 
 O ideal que dois artefatos tenham alta dependência. Isto garante um bom desempenho e facilita a manutenção dos artefatos. 
 
Um acoplamento definido para que classes que contenham métodos que possibilitem alterações de requisitos deve ser a menor 
possível, desta forma se favorece futuras manutenções. 
 
Um alto acoplamento aumenta a dificuldade de entendimento da solução proposta, a diminuição das chances de reutilização, além 
de aumentar a complexidade da aplicação. 
Respondido em 02/06/2019 20:14:38 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura, Indireção e Variações Protegidas. 
Vamos entender o conceito de Acoplamento e Artefato. Acoplamento é o grau de dependência entre dois artefatos. Artefato refere-se a 
qualquer elemento de um projeto de software orientado a objetos, tais como classe, método, componente, pacote, entre outros. 
Essa afirmativa é verdadeira 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. 
O padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo. 
 
 
 
 8a Questão 
 
 
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? 
 
 Controlador; 
 Coesão Alta; 
 Expert (Especialista da informação); 
 Criador; 
 Acoplamento fraco; 
Respondido em 02/06/2019 20:15:17 
 
 
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. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
8a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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. 
 
 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 ¿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; 
 As responsabilidades ¿conhecer¿ estão relacionadas com a distribuição do comportamento do 
sistema entre as classes; 
Respondido em 02/06/2019 20:20:57 
 
 
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. 
 
 
 
 
 2a Questão 
 
 
Com relação aos padrões GRASP, assinale a opção correta: 
 
 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. 
 
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 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. 
Respondido em 02/06/2019 20:22:35 
 
 
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, 
quem é que vai assumir a responsabilidade de um determinado conhecimento ou de uma determinada 
ação. 
 
 
 
 
 3a Questão 
 
 
Os 9 padrões definidos pela General Responsability Assignment Software Pattener são? 
 
 1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 
9.Variation. 
 
1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 
9.Facade. 
 
1.Creator; 2.High Coesion; 3.Low Coupling; 4.Buider; 5.Bridge; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. 
 
1.Creator; 2.Decoretor; 3.FlyWeight; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 
9.Variation. 
 
1.Singleton; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 
9.Variation. 
Respondido em 02/06/2019 20:23:10 
 
 
 
 
 4a Questão 
 
 
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 a dificuldade de 
entendimento da solução proposta 
 Um alto acoplamento trazinú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. 
Respondido em 02/06/2019 20:24:00 
 
 
Explicação: 
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. 
 
 
 
 
 5a Questão 
 
 
Não é padrão GRASP? 
 
 
Polymorphism 
 Controller 
 
Indirection 
 Low Cohesion 
 
Creator 
Respondido em 02/06/2019 20:24:43 
 
 
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. 
COESÃO - Coesão mede o quanto as responsabilidades de um elemento (classe, objeto, subsistema,¿) são 
fortemente relacionadas. 
 
 
 
 
 6a Questão 
 
 
Os padrões GRASP são PRINCÍCPIOS, nos quais nós devemos nos basear, para o desenvolvimento. 
O padrão Expert (Especialista da informação) é um dos padrões GRASP. Com relação a esse padrão, 
assinale a informação INCORRETA. 
 
 O padrão especialista deve atribuir responsabilidade à classe que tem informações suficientes para 
atender uma dada responsabilidade; 
 O padrão especialista não está interessado no algoritmo de criação, mas sim em auxiliar o 
programador a determinar qual classe dever ser responsável pela instanciação de um dado objeto; 
 No padrão especialista, as informações disponíveis estão relacionadas ao estado do próprio objeto; 
 No padrão especialista, a consequência relacionada com a utilização desse padrão é a melhoria do 
encapsulamento; 
 No padrão especialista, as informações que uma classe necessita podem estar espalhadas por toda 
aplicação, em diferentes classes; 
Respondido em 02/06/2019 20:25:23 
 
 
Explicação: 
Essa resposta está INCORRETA porque ela se refere ao padrão Criador. 
 
 
 
 
 7a Questão 
 
 
No GRASP direcionar a ação para a classe que sabe resolvê-la é: 
 
 
Indirection 
 Information Expert 
 
Creator 
 
Variation 
 
Controller 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Respondido em 02/06/2019 20:25:57 
 
 
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. 
 
 
 
 
 8a Questão 
 
 
Marque a alternativa que está relacionada ao padrão de projeto que é auxiliar a reduzir o impacto de modificações em uma aplicação. 
 
 
Criador 
 Acoplamento fraco 
 
State 
 
Especialista da informação 
 
Observador 
Respondido em 02/06/2019 20:26:22 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Definição de Acoplamento: acoplamento é o grau de dependência entre dois artefatos. 
O acoplamento é uma medida de quão fortemente uma classe está conectada (se comunica) a outras classes, tem conhecimento das mesmas 
ou depende delas. 
Uma classe com baixo (fraco) acoplamento não depende de muitas outras.Um acoplamento fraco, (Exemplo: eu sou um WED Development e 
você um WEB Design). Se me tirar, você consegue fazer o seu serviço e vice verça. Precisamos de um número de interações muito menor. 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
8a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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, II, IV 
 
I, III, IV 
 
I, II, III 
 
II, III, IV 
 
Somente a III. 
Respondido em 02/06/2019 20:45:16 
 
 
 
 
 2a Questão 
 
 
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? 
 
 Coesão Alta; 
 Controlador; 
 Acoplamento fraco; 
 Criador; 
 Expert (Especialista da informação); 
Respondido em 02/06/2019 20:45:57 
 
 
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. 
 
 
 
 
 3a Questão 
 
 
 
Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que: 
 
 
 Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa 
tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem 
a responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 
Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 
Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe 
Engenheiro tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. 
 
Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a 
responsabilidade de saber quantas Etapas uma determinada Obra possui. 
Respondido em 02/06/2019 20:46:51 
 
 
 
 
 4a Questão 
 
 
 
Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que: 
 
 Padrão Criador: a Classe Cliente tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Empréstimo tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo. 
 
Padrão Criador: a Classe Empréstimo tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Empréstimo tem a responsabilidade de saber quaissão as parcelas de um determinado Empréstimo. 
 
Padrão Criador: a Classe Parcela tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Parcela tem a responsabilidade de saber quais são as parcelas devedoras. 
 
Padrão Criador: a Classe Cliente tem a responsabilidade de criar instâncias da classe Parcela. Padrão Especialista: a Classe Parcela 
tem a responsabilidade de saber quais são as parcelas devedoras. 
 
Padrão Criador: a Classe Empréstimo tem a responsabilidade de criar instâncias da classe Empréstimo. Padrão Especialista: a Classe 
Parcela tem a responsabilidade de saber quais são as parcelas de um determinado Empréstimo. 
Respondido em 02/06/2019 20:47:36 
 
 
Explicação: 
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. 
Creator (Criador) - O Creator do GoF está focando um problema específico (por exemplo, encapsulando 
código), este não, é decidir quem é o responsável por criar determinado recurso, ou artefato, e escolher 
quem vai criar. 
A criação de objetos é uma das mais comuns atividades em um sistema orientado a objetos. Descobrir 
qual classe é responsável por criar objetos é uma propriedade fundamental da relação entre objetos de 
classes particulares. 
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 
 
 
 
 
 5a Questão 
 
 
Utilizando a nomenclatura dos padrões GRASP, o padrão Criador assume que tipo de responsabilidade? 
 
 Assume a responsabilidade de julgar, 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 conhecer, 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 fazer, pois sua funcionalidade está relacionada com a resposta a 
seguinte pergunta: Quem deve criar um objeto A? 
Respondido em 02/06/2019 20:48:21 
 
 
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. 
 
 
 
 
 6a Questão 
 
 
Pode-se sucintamente definir o padrão Variation do GRASP como: 
 
 
Criar classes altamente coesas. 
 
Criar classes controladoras. 
 Criar classe que resolva problemas de inconsistência, criando adaptações para saná-las. 
 
Criar camadas para melhor organizar a aplicação. 
 
Criar classes que permitam sobrecarga e sobreescrita. 
Respondido em 02/06/2019 20:48:38 
 
 
 
 
 7a Questão 
 
 
Marque a alternativa que apresenta apenas padrões GRASP? 
 
 Coesão alta, controlador e polimorfismo 
 
Coesão alta, controlador, strategy 
 
Controlador, polimorfismo e Memento 
 
Observer, visitor, strategy 
 
Coesão alta, polimorfismo, visitor 
Respondido em 02/06/2019 20:49:08 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
 
 
 
 8a Questão 
 
 
qual das afirmativas abaixo não é verdadeira. 
 
 
acoplamento é o grau de dependência entre dois artefatos. É uma medida de quão forte um elemento está conectado ou tem 
conhecimento de, ou depende de outros elementos. 
 Dessa forma o padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo. 
 O ideal que dois artefatos tenham alta dependência. Isto garante um bom desempenho e facilita a manutenção dos artefatos. 
 
Um alto acoplamento aumenta a dificuldade de entendimento da solução proposta, a diminuição das chances de reutilização, além 
de aumentar a complexidade da aplicação. 
 
Um acoplamento definido para que classes que contenham métodos que possibilitem alterações de requisitos deve ser a menor 
possível, desta forma se favorece futuras manutenções. 
Respondido em 02/06/2019 20:49:36 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura, Indireção e Variações Protegidas. 
Vamos entender o conceito de Acoplamento e Artefato. Acoplamento é o grau de dependência entre dois artefatos. Artefato refere-se a 
qualquer elemento de um projeto de software orientado a objetos, tais como classe, método, componente, pacote, entre outros. 
Essa afirmativa é verdadeira 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. 
O padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo. 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
9a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
O General Responsability Assignment Software Pattener que define a responsabilidade: Tudo que diz respeito a classe deve ser escrita nela é? 
 
 High Coesion 
 Creator 
 
Low Coupling 
 
Polymorphis 
 
Controller 
Respondido em 03/06/2019 15:51:37 
 
 
Explicação: 
A Coesão é um padrão GRASP que pode ser baixa ou alta. A Coesão mede o quanto as responsabilidades de um 
elemento (classe, objeto, subsistema,¿) são fortemente relacionadas. 
O Objeto com Coesão Alta é um objeto cujas responsabilidades são altamente relacionadas e que não executa um 
volume muito grande de trabalho. 
A ideia consiste em que, é desejável, que eu tenha uma aplicação de baixo acoplamento e alta coesão. 
 
 
 
 
 2a Questão 
 
 
São causas comuns de refactoring, exceto: 
 
 
Criação de objetos especificando diretamente uma classe concreta 
 
Dependências de algoritmo 
 Forte coesão 
 
Dependência em operações específicas 
 
Forte acoplamento 
Respondido em 03/06/2019 15:52:14 
 
 
 
 
 3a Questão 
 
 
Num determinado setor de uma empresa fictícia existem 5 (cinco) funcionários contratados. Todos os funcionários são contratados com a 
mesma carga horária de trabalho prevista. Dois dos cinco funcionários produzem o triplo do que produzem os outros colegas de trabalho, pois 
além de concluir as tarefas diárias de sua própria responsabilidade, também executam as tarefas que não são concluídas pelos outros colegas. 
Ao final do expediente é possível observar que os dois funcionários que mais trabalham apresentam maior desgaste físico e mental, pois 
sempre ficam sobrecarregados com responsabilidades extras. Fazendo uma analogia com o cenário descrito acima, responda qual 
característica de Projeto O.O. explicaria a situação que ocorre quando uma má distribuiçãode responsabilidades entre 5 classes afeta a 
colaboração entre os objetos, concentrando responsabilidades demais em somente 2 dessas classes. 
 
 
Elevado Polimorfismo 
 Baixa Coesão 
 
Elevada Herança 
 
Elevado Acoplamento 
 
Baixo Encapsulamento 
Respondido em 03/06/2019 15:54:02 
 
 
 
 
 4a Questão 
 
 
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 tratar alternativas com base no tipo? 
Qual afirmativa abaixo se refere a primeira 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. 
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 o item III; 
 Somente o item I; 
 Somente os itens II e III; 
 Somente os itens I e II; 
 Somente o item II; 
Respondido em 03/06/2019 15:55:09 
 
 
Explicação: 
O item III está INCORRETO porque ela se refere a segunda pergunta do padrão Polimorfismo, que é: 
Como criar componentes de software interconectáveis? 
 
 
 
 
 5a Questão 
 
 
Um padrão controlador é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma 
mensagem de operação do sistema, Este é um padrão de projeto de delegação, pois, normalmente um controlador deve delegar a outros 
objetos o serviço que precisa ser feito. Dentre os conceitos abaixo, assinale aquele que complementa o objtivo deste padrão. 
 
 
ele coordena ou controla as generalizações; 
 ele coordena ou controla as classes; 
 ele coordena ou controla a atividade; 
 
ele controla ou coordena os métodos; 
 
ele coordena ou controla a recursividade; 
Respondido em 03/06/2019 15:56:40 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
 
O tipo tipos de coesão caracterizada quando um módulo executa um e somente um cálculo, e então retorna o resultado é chamada de: 
 
 
Em Camada; 
 
Recursiva. 
 
Comucacional 
 Funcional; 
 
Paralela; 
Respondido em 03/06/2019 15:57:11 
 
 
 
 
 7a Questão 
 
 
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; 
 High Cohesion (Coesão alta); 
 Especialista da Informação; 
 Indireção; 
 Criador; 
Respondido em 03/06/2019 15:57:51 
 
 
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. 
 
 
 
 
 8a Questão 
 
 
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. 
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 o item III; 
 Somente o item I; 
 Somente o item II; 
 Somente os itens I e II; 
 Somente os itens II e III; 
Respondido em 03/06/2019 15:58:28 
 
 
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? 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
9a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta: 
 
 
 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 uma estrutura de herança. Automaticamente fica definido uma estrutura de métodos. Isto é polimorfismo 
 
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 vários métodos. Cada método deve ter uma estrutura IF...THEN...para cada situação. Isto é polimorfismo. 
 
Define-se um método na classe PAI. Este método é copiado nas classes que herdam a classe PAI. Isto é polimorfismo. 
Respondido em 03/06/2019 15:59:45 
 
 
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. 
 
 
 
 2a Questão 
 
 
O General Responsability Assignment Software Pattener que define a responsabilidade: Comportamentos com o mesmo nome mas que fazem 
operações deferentes. Trata-se de? 
 
 Polymorphis 
 
Information Expert 
 
Indirection 
 
Pure Fabrication 
 
High Coesion 
Respondido em 03/06/2019 16:00:07 
 
 
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. 
 
 
 
 3a Questão 
 
 
Com relação aos padrões GRASP, Pressman (2006) explica que 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. 
Relacione os tipos de coesão com a sua real definição: 
1- Ocorre quando um módulo executa um e somente um cálculo, e então retorna o resultado. 
2- Todas as operações que tem acesso aos mesmos dados são definidas dentro de uma classe. 
3- Ocorre quando uma camada de mais alto nível tem acesso a serviços de camadas mais baixas, mas 
camadas mais baixas,não tem acesso a camadas mais altas. 
 
 1- EM CAMADA, 2- FUNCIONAL, 3- COMUCACIONAL. 
 1- COMUCACIONAL, 2- FUNCIONAL, 3- EM CAMADA. 
 1- FUNCIONAL, 2- EM CAMADA, 3- COMUCACIONAL. 
 1- COMUCACIONAL, 2- EM CAMADA, 3- FUNCIONAL. 
 1- FUNCIONAL, 2- COMUCACIONAL, 3- EM CAMADA. 
Respondido em 03/06/2019 16:01:39 
 
 
Explicação: 
Essa resposta está CORRETA, porque corresponde exatamente a cada uma das definições dos tipos de 
Coesão determinada por Presman. 
 
 
 
 
 4a Questão 
 
 
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 maior acoplamento possível. 
 Desenvolver as classes com a maior coesão e menor acoplamento possível. 
 
Desenvolver as classes com a menor coesão e menor acoplamento possível. 
 
Desenvolver as classes sem coesão e com acoplamento. 
 
Desenvolver as classes com a maior coesão e maior acoplamento possível. 
Respondido em 03/06/2019 16:02:30 
 
 
 
 
 5a Questão 
 
 
(CESPE - 2010 - INMETRO) A coesão e o acoplamento são formas de se avaliar se a segmentação de um sistema em módulos ou em 
componentes foi eficiente. 
 
Acerca da aplicação desses princípios, assinale a opção correta. 
 
 Um benefício da alta coesão é permitir realizar a manutenção em um módulo sem se preocupar com os detalhes internos dos demais 
módulos. 
 
A modularização do programa em partes especializadas pode aumentar a qualidade desses componentes, mas pode prejudicar o seu 
reaproveitamento em outros programas. 
 
O baixo acoplamento pode melhorar a manutebilidade dos sistemas, pois ele está associado à criação de módulos como se fossem 
caixas-pretas. 
 Os componentes ou os módulos devem ser fortemente coesos e fracamente acoplados. 
 
Os componentes ou os módulos devem apresentar baixa coesão e um alto grau de acoplamento. 
Respondido em 03/06/2019 16:03:35 
 
 
 
 
 6a Questão 
 
 
Marque a alternativa que está relacionada com o padrão GRASP utilizado para conectar a camada de interface com o usuário e a camada de 
negócios da aplicação? 
 
 
Coesão alta 
 
Polimorfismo 
 Controlador 
 
Baixo acoplamento 
 
Especialista da informação 
Respondido em 03/06/2019 16:03:56 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Um controlador (controller) é 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. 
 
 
 
 7a Questão 
 
 
Qual padrão GRASP tem como um de seus objetivos minimizar o impacto na camada de negócio referente às alterações nos requisitos da 
interface com o usuário? 
 
 Controlador 
 
Indireção 
 
Especialista da Informação 
 
Alta Coesão 
 
Mediador 
Respondido em 03/06/2019 16:04:13 
 
 
 
 
 8a Questão 
 
 
Dado o diagrama de sequência identifique o padrão GRASP 
 
 
 
Pure Fabrication 
 Controller 
 
Information Expert 
 Polymorphis 
 
Indirection 
Respondido em 03/06/2019 16:04:37 
 
 
Explicação: 
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. 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
9a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
(FCC - 2012) O componente Controller do MVC: 
 
 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. 
 
É onde são concentradas todas as regras de negócio da aplicação e o acesso aos dados. 
 Envia requisições do usuário para o controlador e recebe dados atualizados dos componentes de acesso a dados. 
 
Notifica os componentes de apresentação das mudanças efetuadas nos dados e expõe a funcionalidade da aplicação. 
 
Responde às solicitações de queries e encapsula o estado da aplicação. 
Respondido em 03/06/2019 16:05:26 
 
 
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) 
Representa um tratador oficial de todos os eventos de sistema de um caso de uso (controlador de caso de 
uso). 
 
 
 
 
 2a Questão 
 
 
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? 
 
 Invenção pura; 
 Criador; 
 Variações protegidas; 
 Coesão Alta; 
 Controlador; 
Respondido em 03/06/2019 16:05:42 
 
 
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. 
 
 
 
 
 3a Questão 
 
 
Considere a figura abaixo 
 
E escolha a opção correta sobre a gravura: 
 
 uma classe de controle exige que sempre se tem há uma classe de apresentação. Desta forma não podemos ter mais de uma classe 
de controle por sistema 
 A classe instanciada assinalada como :???? Permite desacoplar as classes e métodos de apresentação. E isto aumenta a reutilização 
das classes de negocio. 
 
A Classe instanciada assinala como :???? É de baixo acoplamento e baixa coesão pela natureza de sua criação. 
 
A Classe instanciada assinalada como :???? Deveria estar incorporada na classe emprestar para evitar criar uma serie de novas 
classes. Isto facilita o projeto. 
 
A Classe instanciada assinalada como :???? Não pode ser decomposta em outros controladores. Assim temos que trabalhar com o 
tipo de coesão resultante (temporal, funcional...) 
Respondido em 03/06/2019 16:06:18 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura, Indireção e Variações Protegidas. 
Essa afirmativa é a correta porque em uma Coesão Alta as classes com estes tipos de coesão são mais fáceis de implementar, testar e 
manter. No entanto, outros tipos de coesão podem aparecer, tais como, seqüencial, procedural, temporal e utilidade, as quais, segundo 
Pressman (2006), são menos desejáveis e devem ser evitados quando existirem alternativas de projeto. 
Ainda segundo Larman (2007), uma classe com coesão baixa faz muitas atividades que não estão relacionadas e trabalha em demasia, 
acarretando os seguintes problemas: dificuldade de compreensão e manutenção, dificuldade de reutilização, além de apresentar bastante 
sensibilidade a modificações.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. 
 
 
 
 4a Questão 
 
 
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, III e IV. 
 
I e II, apenas. 
 II, III e IV, apenas. 
 I, II e III, apenas. 
 
II e III, apenas. 
Respondido em 03/06/2019 16:07:39 
 
 
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. 
 
 
 
 
 5a Questão 
 
 
O General Responsability Assignment Software Pattener que define a responsabilidade: Tudo que diz respeito a classe deve ser escrita nela é? 
 
 
Controller 
 High Coesion 
 
Low Coupling 
 
Polymorphis 
 Creator 
Respondido em 03/06/2019 16:08:00 
 
 
Explicação: 
A Coesão é um padrão GRASP que pode ser baixa ou alta. A Coesão mede o quanto as responsabilidades de um 
elemento (classe, objeto, subsistema,¿) são fortemente relacionadas. 
O Objeto com Coesão Alta é um objeto cujas responsabilidades são altamente relacionadas e que não executa um 
volume muito grande de trabalho. 
A ideia consiste em que, é desejável, que eu tenha uma aplicação de baixo acoplamento e alta coesão. 
 
 
 
 
 6a Questão 
 
 
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 tratar alternativas com base no tipo? 
Qual afirmativa abaixo se refere a primeira 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. 
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 o item I; 
 Somente o item II; 
 Somente o item III; 
 Somente os itens I e II; 
 Somente os itens II e III; 
Respondido em 03/06/2019 16:08:15 
 
 
Explicação: 
O item III está INCORRETO porque ela se refere a segunda pergunta do padrão Polimorfismo, que é: 
Como criar componentes de software interconectáveis? 
 
 
 
 
 7a Questão 
 
 
O tipo tipos de coesão caracterizada quando um módulo executa um e somente um cálculo, e então retorna o resultado é chamada de: 
 
 
Comucacional 
 
Paralela; 
 
Em Camada; 
 
Recursiva. 
 Funcional; 
Respondido em 03/06/2019 16:08:31 
 
 
 
 
 8a Questão 
 
 
Num determinado setor de uma empresa fictícia existem 5 (cinco) funcionários contratados. Todos os funcionários são contratados com a 
mesma carga horária de trabalho prevista. Dois dos cinco funcionários produzem o triplo do que produzem os outros colegas de trabalho, pois 
além de concluir as tarefas diárias de sua própria responsabilidade, também executam as tarefas que não são concluídas pelos outros colegas. 
Ao final do expediente é possível observar que os dois funcionários que mais trabalham apresentam maior desgaste físico e mental, pois 
sempre ficam sobrecarregados com responsabilidades extras. Fazendo uma analogia com o cenário descrito acima, responda qual 
característica de Projeto O.O. explicaria a situação que ocorre quando uma má distribuição de responsabilidades entre 5 classes afeta a 
colaboração entre os objetos, concentrando responsabilidades demais em somente 2 dessas classes. 
 
 
Elevado Acoplamento 
 
Baixo Encapsulamento 
 
Elevada Herança 
 Baixa Coesão 
 
Elevado Polimorfismo 
Respondido em 03/06/2019 16:08:52 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
9a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
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. 
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 o item III; 
 Somente o item I; 
 Somente os itens II e III; 
 Somente o item II; 
 Somente os itens I e II; 
Respondido em 03/06/2019 16:09:18 
 
 
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? 
 
 
 
 
 2a Questão 
 
 
São causas comuns de refactoring, exceto: 
 
 
Dependências de algoritmo 
 Forte coesão 
 
Criação de objetos especificando diretamente uma classe concreta 
 
Dependência em operações específicas 
 
Forte acoplamento 
Respondido em 03/06/2019 16:09:42 
 
 
 
 
 3a Questão 
 
 
Um padrão controlador é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma 
mensagem de operação do sistema, Este é um padrão de projeto de delegação, pois, normalmente um controlador deve delegar a outros 
objetos o serviço que precisa ser feito. Dentre os conceitos abaixo, assinale aquele que complementa o objtivo deste padrão. 
 
 
ele coordena ou controla as classes; 
 
ele coordena ou controla a recursividade; 
 
ele coordena oucontrola as generalizações; 
 ele coordena ou controla a atividade; 
 
ele controla ou coordena os métodos; 
Respondido em 03/06/2019 16:09:52 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
 
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? 
 
 High Cohesion (Coesão alta); 
 Indireção; 
 Criador; 
 Invenção Pura; 
 Especialista da Informação; 
Respondido em 03/06/2019 16:10:10 
 
 
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. 
 
 
 
 
 5a Questão 
 
 
sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta: 
 
 
 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 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 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 
Respondido em 03/06/2019 16:10:20 
 
 
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. 
 
 
 
 6a Questão 
 
 
O Paradigma Orientado a Objetos com os padrões de responsabilidades GRASP definem que a melhor técnica de programação POO é: 
 
 
Desenvolver as classes com a maior coesão e 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. 
 
Desenvolver as classes com a menor coesão e maior acoplamento possível. 
 
Desenvolver as classes com a menor coesão e menor acoplamento possível. 
Respondido em 03/06/2019 16:10:38 
 
 
 
 
 7a Questão 
 
 
Com relação aos padrões GRASP, Pressman (2006) explica que 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. 
Relacione os tipos de coesão com a sua real definição: 
1- Ocorre quando um módulo executa um e somente um cálculo, e então retorna o resultado. 
2- Todas as operações que tem acesso aos mesmos dados são definidas dentro de uma classe. 
3- Ocorre quando uma camada de mais alto nível tem acesso a serviços de camadas mais baixas, mas 
camadas mais baixas, não tem acesso a camadas mais altas. 
 
 1- FUNCIONAL, 2- COMUCACIONAL, 3- EM CAMADA. 
 1- EM CAMADA, 2- FUNCIONAL, 3- COMUCACIONAL. 
 1- COMUCACIONAL, 2- EM CAMADA, 3- FUNCIONAL. 
 1- FUNCIONAL, 2- EM CAMADA, 3- COMUCACIONAL. 
 1- COMUCACIONAL, 2- FUNCIONAL, 3- EM CAMADA. 
Respondido em 03/06/2019 16:10:47 
 
 
Explicação: 
Essa resposta está CORRETA, porque corresponde exatamente a cada uma das definições dos tipos de 
Coesão determinada por Presman. 
 
 
 
 
 8a Questão 
 
 
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 
 
Indirection 
 
Pure Fabrication 
 
Information Expert 
 Polymorphis 
Respondido em 03/06/2019 16:11:02 
 
 
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. 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
10a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte questão: como projetar objetos e subsistemas de 
modo que variações não causem impactos indesejados? 
 
 
Indireção 
 
Polimorfismo 
 Variações Protegidas 
 
Controlador 
 
Invenção Pura 
Respondido em 03/06/2019 16:56:28 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura, Indireção e Variações Protegidas. 
O padrão Variações Protegidas serve para resolver problemas como projetar objetos, subsistemas e sistemas para que as variações ou 
instabilidades nesses elementos não tenham um impacto indesejável nos outros elementos. 
Este padrão de projeto é um princípio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado 
a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. As 
variações podem ser ainda divididas em evolutivas e corretivas. 
 
 
 
 2a Questão 
 
 
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- Indireção; 2- Invenção Pura e 3- Variações Protegidas. 
 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- Invenção Pura; 2- Variações Protegidas e 3- Indireção. 
 1- Variações Protegidas; 2- Indireção e 3- Invenção Pura. 
Respondido em 03/06/2019 16:57:27 
 
 
Explicação: 
Essa resposta está correta porque o relaciona corretamente os objetivos de modelo de Invenção Pura, 
Indireção e Variações Protegidas. 
 
 
 
 
 3a Questão 
 
 
O objetivo do padrão de projeto Indireção é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros 
componentes ou serviços, com o objetivo de? 
 
 
impedir que que eles sejam parcialmente acoplados 
 
impedir que que eles não sejam diretamente excluídos; 
 
permitir que que eles sejam diretamente acoplados; 
 
impedir que que eles sejam indiretamente acoplados; 
 impedir que que eles não sejam diretamente acoplados; 
Respondidoem 03/06/2019 16:58:19 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
 
Que tipo de Padrão GRASP devemos utilizar para o seguinte problema? 
Atribuir responsabilidades apenas para classes do domínio conceitual pode levar à situações de 
maior acoplamento e menos coesão. 
 
 Pure Fabrication (Invenção Pura); 
 Acoplamento fraco; 
 Variações Protegidas; 
 Controlador; 
 Coesão Alta. 
Respondido em 03/06/2019 17:00:59 
 
 
Explicação: 
Essa resposta está correta para essa solução o Pure Fabrication (Invenção Pura) atribui um conjunto 
altamente coesivo de responsabilidades (ou seja, aquelas séries de responsabilidades que são coesas vou 
atribui-las a) a uma classe artificial (ou seja, uma classe que não seja do domínio do negócio) que não 
representa um conceito do domínio do problema (a ser resolvido). 
 
 
 
 
 5a Questão 
 
 
Dentre as opções abaixo, assinale aquela que sugere onde uma aplicação do padrão de projeto Invenção Pura deve criar uma nova classe 
específica para salvar objetos. 
 
 
em um banco de dados homogêneo; 
 
em um banco de dados integrado; 
 
em um banco de dados ordenado; 
 
em em um banco de dados hierárquico; 
 em em um banco de dados relacional. 
Respondido em 03/06/2019 17:03:46 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
 
Dentre as opções abaixo assinale aquela que não se constitui em um benefícios da aplicação do padrão variações protegidas. 
 
 
as extensões para novas variações são fáceis de adicionar, 
 
novas implementações são introduzidas sem afetar o cliente, 
 
o acoplamento fica mais baixo; 
 as extensões para novas variações são difiíceis de adicionar, 
 
o impacto ou custo das modificações pode ser diminuído. 
Respondido em 03/06/2019 17:04:26 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
 
O padrão Variações protegidas tem como característica: 
 
 É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, 
tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. 
 
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, 
para que eles não sejam diretamente acoplados. 
 
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. 
 
Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de conveniência que não represente o 
domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. 
 
é o 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. 
Respondido em 03/06/2019 17:04:46 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura (Pure Fabrication), Indireção e Variações Protegidas. 
O padrão de projeto Variações Protegidas é um princípio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em 
um projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, 
entre outros. As variações podem ser ainda divididas em evolutivas e corretivas. 
O padrão Variações Protegidas resolve problemas como: Como projetar objetos, subsistemas e sistemas para que as variações ou 
instabilidades nesses elementos não tenham um impacto indesejável nos outros elementos? 
A ideia é identificar os pontos de variação ou instabilidade previsível e atribuir responsabilidades para criar uma interface estável em torno 
deles. Larman (2007) compara o amadurecimento de um desenvolver ou projetista de software ao seu crescente conhecimento sobre 
mecanismos para obter variações protegidas. Argumenta que, nos primeiros estágios, o programador aprende sobre encapsulamento de 
dados, interfaces e polimorfismo. 
 
 
 
 8a Questão 
 
 
Para o problema: 
Que objeto deve ter a responsabilidade, quando não se quer violar a Alta Coesão e o Baixo 
Acoplamento, mas as soluções oferecidas por Expert não são adequadas? 
Que solução devemos aplicar? Assinale a resposta CORRETA. 
 
 Atribuir a responsabilidade a um objeto intermediário para mediar as mensagens; 
 Atribuir um objeto intermediário entre os dois componentes que não mais dependam um do outro; 
 Atribuir por meio de Polimorfismo, uma interface consistente; 
 Atribuir um conjunto altamente coesivo de responsabilidades a uma classe artificial, que não 
representa um conceito do domínio do problema; 
 Atribuir a responsabilidade a um objeto intermediário entre outros componentes ou serviços, para 
que não sejam diretamente acoplados; 
Respondido em 03/06/2019 17:05:39 
 
 
Explicação: 
Essa resposta está correta porque as outras se referem a soluções de Indireção. 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
10a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Marque dentre as opções apresentadas aquela que corresponde ao padrão de projeto que sugere atribuir um conjunto de responsabilidades 
altamente coesas a uma classe artificial, ou de conveniência, que não represente o domínio do problema, algo inventado, para apoiar coesão 
alta, acoplamento baixo e reuso. 
 
 Invenção pura; 
 
Indireção; 
 
Criador 
 
Proxy; 
 
Variações protegidas; 
Respondido em 03/06/2019 17:06:21 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
 
Para o seguinte problema: 
Como projetar objetos, subsistemas e sistemas para que as variações ou instabilidades nesses 
elementos não tenham um impacto indesejável nos outros elementos? 
Qual solução devemos aplicar? Assinale a resposta INCORRETA. 
 
 Evitar enviar mensagens a objetos muito distantes. 
 Utilizar os princípios de encapsulamento, interfaces, polimorfismo, indireção e padrões, além de 
máquinas virtuais e brokers; 
 Atribuir responsabilidades para criar uma interface estável em volta desses pontos; 
 Atribuir a responsabilidade a um objeto intermediário para mediar as mensagens entre outros 
componentes ou serviços, para que não sejam diretamente acoplados; 
 Identificar pontos de variação ou instabilidade potenciais; 
Respondido em 03/06/2019 17:06:48 
 
 
Explicação: 
Essa resposta está INCORRETA porque ela deve ser usada para uma solução do padrão Indireção. 
 
 
 
 
 3a Questão 
 
 
O padrão Indireção tem como característica: 
 
 
é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação 
do sistema. 
 O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, 
para que eles não sejam diretamente acoplados. 
 
É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, tais 
como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. 
 Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de conveniência que não represente o 
domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. 
 
implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si e com a classe do 
componente ou classe propriamente dito. 
Respondido em 03/06/2019 17:07:36 
 
 
Explicação: 
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, para que 
eles não sejam diretamente acoplados.. 
E: 
Alguns padrões da família GRASP: Expert, Creator,High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura (Pure Fabrication), Indireção e Variações Protegidas. 
O padrão Indireção resolve problemas como: a quem devemos atribuir a responsabilidade, evitando o acoplamento direto entre dois ou mais 
objetos? e como desacoplar objetos apoiando o Acoplamento Baixo e maximizando o potencial de reuso? 
A solução para isso é atribuir a responsabilidade a um objeto intermediário para mediar as mensagens entre outros componentes ou serviços, 
para que não sejam diretamente acoplados e o objeto intermediário cria uma camada de indireção entre os dois componentes que não mais 
dependam um do outro: Ambos dependem da indireção. 
A Indireção quer que dois objetos, evite-se o acoplamento direto entre eles. 
A ideia é diminuir o acoplamento e manter a coesão. 
 
 
 
 4a Questão 
 
 
O padrão Invenção Pura tem como característica: 
 
 Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de conveniência que não represente o 
domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. 
 O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, 
para que eles não sejam diretamente acoplados. 
 
É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, tais 
como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. 
 
é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação 
do sistema. 
 
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. 
Respondido em 03/06/2019 17:07:53 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura (Pure Fabrication), Indireção e Variações Protegidas. 
O padrão Inversão Pura resolve problemas como: Que objeto deve ter a responsabilidade, quando não se quer violar a Alta Coesão e o Baixo 
Acoplamento, mas as soluções oferecidas por Expert não são adequadas? e Atribuir responsabilidades apenas para classes do domínio 
conceitual pode levar à situações de maior acoplamento e menos coesão. 
A solução para isso é atribuir um conjunto altamente coesivo de responsabilidades (ou seja, aquelas séries de responsabilidades que são 
coesas vou atribui-las a) a uma classe artificial (ou seja, uma classe que não seja do domínio do negócio) que não representa um conceito do 
domínio do problema (a ser resolvido). 
 
 
 
 5a Questão 
 
 
O padrão Variações protegidas tem como característica: 
 
 
Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de conveniência que não represente o 
domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. 
 É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, 
tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. 
 
é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação 
do sistema. 
 
implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si e com a classe do 
componente ou classe propriamente dito. 
 
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, 
para que eles não sejam diretamente acoplados. 
Respondido em 03/06/2019 17:08:27 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura (Pure Fabrication), Indireção e Variações Protegidas. 
O padrão de projeto Variações Protegidas é um princípio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em 
um projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, 
entre outros. As variações podem ser ainda divididas em evolutivas e corretivas. 
O padrão Variações Protegidas resolve problemas como: Como projetar objetos, subsistemas e sistemas para que as variações ou 
instabilidades nesses elementos não tenham um impacto indesejável nos outros elementos? 
A ideia é identificar os pontos de variação ou instabilidade previsível e atribuir responsabilidades para criar uma interface estável em torno 
deles. Larman (2007) compara o amadurecimento de um desenvolver ou projetista de software ao seu crescente conhecimento sobre 
mecanismos para obter variações protegidas. Argumenta que, nos primeiros estágios, o programador aprende sobre encapsulamento de 
dados, interfaces e polimorfismo. 
 
 
 
 6a Questão 
 
 
Para o problema: 
Que objeto deve ter a responsabilidade, quando não se quer violar a Alta Coesão e o Baixo 
Acoplamento, mas as soluções oferecidas por Expert não são adequadas? 
Que solução devemos aplicar? Assinale a resposta CORRETA. 
 
 Atribuir um objeto intermediário entre os dois componentes que não mais dependam um do outro; 
 Atribuir a responsabilidade a um objeto intermediário entre outros componentes ou serviços, para 
que não sejam diretamente acoplados; 
 Atribuir por meio de Polimorfismo, uma interface consistente; 
 Atribuir um conjunto altamente coesivo de responsabilidades a uma classe artificial, que não 
representa um conceito do domínio do problema; 
 Atribuir a responsabilidade a um objeto intermediário para mediar as mensagens; 
Respondido em 03/06/2019 17:08:52 
 
 
Explicação: 
Essa resposta está correta porque as outras se referem a soluções de Indireção. 
 
 
 
 
 7a Questão 
 
 
O padrão de projeto variações protegidas é um princípio básico para fornecer _____________e _____________ flexibilidade e proteção 
contra diversos tipos de variações em um projeto orientado a objetos, Complete as lacunas com a opção correta. 
 
 
flexibilidade e acoplamento; 
 
proteção e visibilidade; 
 
flexibilidade, proteção e visibilidade. 
 
proteção e coesão; 
 flexibilidade e proteção; 
Respondido em 03/06/2019 17:09:33 
 
 
 
 
 8a Questão 
 
 
Dentre as opções abaixo, assinale aquela que sugere onde uma aplicação do padrão de projeto Invenção Pura deve criar uma nova classe 
específica para salvar objetos. 
 
 em em um banco de dados relacional. 
 
em um banco de dados ordenado; 
 
em um banco de dados homogêneo; 
 
em em um banco de dados hierárquico; 
 
em um banco de dados integrado; 
Respondido em 03/06/2019 17:09:55 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
 
 
 
 
 
PADRÕES DE PROJETO DE SOFTWARE 
10a aula Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
 
 
 1a Questão 
 
 
Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte questão: Como distribuir responsabilidades 
buscando alcançar Coesão Alta ou Acoplamento Baixo? 
 
 Invenção Pura 
 
polimorfismo 
 
controlador 
 
variações protegidas 
 Indireção 
Respondido em 03/06/2019 17:10:31 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Como não há uma classe de domínio de negócio que seria cabível a delegação desse comportamento, a intenção é, atravésdo padrão 
Inversão Pura, 
A Inversão Pura é utilizada 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. 
 
 
 
 2a Questão 
 
 
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- Variações Protegidas; 2- Indireção e 3- Invenção Pura. 
 1- Variações Protegidas; 2- Invenção Pura e 3- Indireção. 
 1- Invenção Pura; 2- Variações Protegidas e 3- Indireção. 
 1- Invenção Pura; 2- Indireção e 3- Variações Protegidas. 
 1- Indireção; 2- Invenção Pura e 3- Variações Protegidas. 
Respondido em 03/06/2019 17:11:26 
 
 
Explicação: 
Essa resposta está correta porque o relaciona corretamente os objetivos de modelo de Invenção Pura, 
Indireção e Variações Protegidas. 
 
 
 
 
 3a Questão 
 
 
O objetivo do padrão de projeto Indireção é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros 
componentes ou serviços, com o objetivo de? 
 
 
impedir que que eles sejam indiretamente acoplados; 
 impedir que que eles não sejam diretamente acoplados; 
 
impedir que que eles sejam parcialmente acoplados 
 
impedir que que eles não sejam diretamente excluídos; 
 
permitir que que eles sejam diretamente acoplados; 
Respondido em 03/06/2019 17:11:58 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
 
Que tipo de Padrão GRASP devemos utilizar para o seguinte problema? 
Atribuir responsabilidades apenas para classes do domínio conceitual pode levar à situações de 
maior acoplamento e menos coesão. 
 
 Coesão Alta. 
 Pure Fabrication (Invenção Pura); 
 Variações Protegidas; 
 Controlador; 
 Acoplamento fraco; 
Respondido em 03/06/2019 17:12:43 
 
 
Explicação: 
Essa resposta está correta para essa solução o Pure Fabrication (Invenção Pura) atribui um conjunto 
altamente coesivo de responsabilidades (ou seja, aquelas séries de responsabilidades que são coesas vou 
atribui-las a) a uma classe artificial (ou seja, uma classe que não seja do domínio do negócio) que não 
representa um conceito do domínio do problema (a ser resolvido). 
 
 
 
 
 5a Questão 
 
 
Dentre as opções abaixo assinale aquela que não se constitui em um benefícios da aplicação do padrão variações protegidas. 
 
 
o impacto ou custo das modificações pode ser diminuído. 
 
o acoplamento fica mais baixo; 
 as extensões para novas variações são difiíceis de adicionar, 
 
novas implementações são introduzidas sem afetar o cliente, 
 
as extensões para novas variações são fáceis de adicionar, 
Respondido em 03/06/2019 17:13:23 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
 
Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte questão: como projetar objetos e subsistemas de 
modo que variações não causem impactos indesejados? 
 
 Variações Protegidas 
 
Invenção Pura 
 
Polimorfismo 
 
Controlador 
 
Indireção 
Respondido em 03/06/2019 17:13:43 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura, Indireção e Variações Protegidas. 
O padrão Variações Protegidas serve para resolver problemas como projetar objetos, subsistemas e sistemas para que as variações ou 
instabilidades nesses elementos não tenham um impacto indesejável nos outros elementos. 
Este padrão de projeto é um princípio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado 
a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. As 
variações podem ser ainda divididas em evolutivas e corretivas. 
 
 
 
 7a Questão 
 
 
O padrão Variações protegidas tem como característica: 
 
 
implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si e com a classe do 
componente ou classe propriamente dito. 
 
é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação 
do sistema. 
 
O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, 
para que eles não sejam diretamente acoplados. 
 
Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de conveniência que não represente o 
domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. 
 É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, 
tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. 
Respondido em 03/06/2019 17:14:33 
 
 
Explicação: 
Alguns padrões da família GRASP: Expert, Creator, High Coesion, Low Coupling, Controller, ou seja: Especialista; Criador; Baixo 
Acoplamento (Acoplamento Fraco). 
Outros padrões GRASP considerados Avançados são Inversão Pura (Pure Fabrication), Indireção e Variações Protegidas. 
O padrão de projeto Variações Protegidas é um princípio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em 
um projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, 
entre outros. As variações podem ser ainda divididas em evolutivas e corretivas. 
O padrão Variações Protegidas resolve problemas como: Como projetar objetos, subsistemas e sistemas para que as variações ou 
instabilidades nesses elementos não tenham um impacto indesejável nos outros elementos? 
A ideia é identificar os pontos de variação ou instabilidade previsível e atribuir responsabilidades para criar uma interface estável em torno 
deles. Larman (2007) compara o amadurecimento de um desenvolver ou projetista de software ao seu crescente conhecimento sobre 
mecanismos para obter variações protegidas. Argumenta que, nos primeiros estágios, o programador aprende sobre encapsulamento de 
dados, interfaces e polimorfismo. 
 
 
 
 8a Questão 
 
 
Dentre as opções abaixo, assinale aquela que sugere onde uma aplicação do padrão de projeto Invenção Pura deve criar uma nova classe 
específica para salvar objetos. 
 
 
em um banco de dados integrado; 
 
em um banco de dados homogêneo; 
 
em um banco de dados ordenado; 
 em em um banco de dados relacional. 
 
em em um banco de dados hierárquico; 
Respondido em 03/06/2019 17:14:51 
 
 
Gabarito 
Coment.