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.