Buscar

Padrões de Projeto de Software Aula 01 Completa

Prévia do material em texto

Qual o objetivo dos Padrões Comportamentais? Assinale a opção CORRETA.
R: 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. 
Qual padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar?
R: Factory Method.
Explicação: Há cinco Padrões de Criação GoF: Abstract Factory, Builder, Factory Method, Prototype e Singleton. 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. EXEMPLOS: 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.
Qual padrão fornece uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes completas?
R: Abstract Factory.
Explicação: 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.
Prover uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas." . Para qual padrão de projeto a afirmação se relaciona?
R: Abstract Factory
São padrões de projeto GoF (design patterns), EXCETO:
R: Workflow
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. Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Há 11 Padrões Comportamentais GoF: Chain of Responsability, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor.
Considere a afirmativa de Gamma e Al. citada abaixo e escolha a opção correta: ¿ Em geral, todas as arquiteturas orientadas a objeto bem-estruturadas estão cheias de padrões. Uma das maneiras de medir a qualidade de um sistema orientado a objetos é avaliar se os colaboradores tomaram bastante cuidado com as colaborações comuns entre seus objetos. Focalizar em tais mecanismos durante o desenvolvimento de um sistema pode levar a uma arquitetura menor, mais simples, muito mais compreensível do que aquelas produzidas quanto padrões são ignorados.¿
R: Padrões são boas práticas e proporcionam garantia de qualidade na elaboração do código.
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?
R: Composite
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
( 5 ) 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. 
( 1 ) 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.
( 3 ) 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. 
( 2 ) Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexível para a extensão de funcionalidade. 
( 4 ) 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.
R: 5 - 1 - 3 - 2 - 4
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.
O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes quantidades de objetos, de granularidade fina, de maneira eficiente, é denominado
R: Flyweight
Esses são padrões de projeto GoF estudados em aula, EXCETO:
R: Workflow
(ESAF - 2005) Analise as seguintes afirmações relacionadas a padrões de projetos: 
I. O padrão Builder separa a construção de um objeto complexo de sua representação, de modo a que o mesmo processo de construção possa criar diferentes representações. 
II. O método Abstract Factory fornece uma interface para a criação de uma família de objetos relacionados ou dependentes sem especifi car suas classes completas. 
III. O padrão Bridge defi ne uma interface para criar um objeto, mas deixa as subclasses decidirem que classe será instanciada. O Bridge permite a uma classe postergar a instanciação das subclasses. 
IV. O Chain of responsability usa compartilhamento para suportar grandes quantidades de objetos e define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. 
Indique a opção que contenha todas as afirmações verdadeiras.
R: I e II
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.
As opções III e IV estão erradas porque:
O padrão Bridge, desacopla uma abstração de sua implementação, de tal forma que os dois possam variar independentemente.
O padrão Chain of Responsibility, compõem objetos em cascata para, através dela, delegar uma requisição até que um objeto a sirva.
(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:
R: Template Method
Analise as sentenças abaixo sobre os grupos de padrões da família GoF e, em seguida, assinale a alternativa correta: 
I. Os Padrões Comportamentais são projetados para organizar, gerenciar e combinar diferentes comportamentos. Podemos citar os seguintes padrõespertencentes a esse grupo: Chain of Responsibility, Command e Interpreter. 
II. Os Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente envolve decisões estáticas para escolher, por exemplo, quais objetos instanciar ou a quais classes delegar responsabilidade. São doze os padrões de criação: Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy, Abstract Factory, Builder, Factory Method, Prototype e Singleton.
III. Os Padrões Estruturais definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mútua.
R: Apenas as sentenças I e III estão corretas
EXPLICAÇÃO: Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. O item II está errado porque 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. Eles são associados ao processo de criação de objetos, e tornam um sistema independente de como seus objetos são criados, compostos e representados.
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.
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:
R: Observer, Interpreter, Decorator
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).
Uma das categoria que tradicionalmente se classificam os padrões de projeto: Padrões de criação cujo objetivo é:
R: Define formas de instanciar objetos delegando responsabilidades
EXPLICAÇÃO: Isso porque padrões de projeto são voltados para problemas recorrentes que ocorrem no nosso dia-a-dia, seja na área de desenvolvimento de software, seja em qualquer outra área do conhecimento.
Ao caracterizarmos os padrões de projeto por Finalidade, temos: Estruturais, de Criação e Comportamentais.
Os de Criação são associados ao processo de criação de objetos e também tornam um sistema independente de como seus objetos são criados, compostos e representados.
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:
R: Interpreter (interpretável) , Secure (confiável ) e Stable (estável)
Assinale a alternativa que complete as afirmações abaixo:
I. Os padrões ________________________ se preocupam com algoritmos e atribuição de responsabilidade entre objetos.
II. Os padrões ________________________ se preocupam com a forma como as classes e objetos são compostos para formar estruturas maiores, ou seja, tratam como decompor classes e objetos para formar estruturas grandes e complexas.
III. Os padrões _________________________ abstraem o processo de instanciação. Ajudam a tornar um sistema independente de como seus objetos são criados, compostos e representados.
R: Comportamentais; estruturais; criacionais
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. 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. Os Padrões Comportamentais 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.
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:
R: Façade e singleton
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.
Para facilitar a manutenção da aplicação, há um design pattern que tem como objetivo principal centralizar o acesso aos dados em uma única camada. Esse design pattern é o
R: DAO
Segundo Metsker, a classificação dos padrões GoF se divide em:
R: Interface, construção, responsabilidade, operações e extensões
Escolha a opção que contem, somente, padrões de interface, segundo Metsker:
R: Adapter, Facade, Composite e Bridge
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.
Qual a função do Padrão de Method Factory?
R: Define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar. O padrão permite adiar a instanciação para subclasses.
EXPLICAÇÃO: Há três grupos de padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 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.
Quanto aos design patterns, é correto afirmar que:
R: Descrevem melhores práticas, bons projetos, e captam a experiência de uma maneira possível de ser usada por outros.
A família de padrões GoF é dividida em três grupos principais de padrões, a saber:
R: Padrões Comportamentais; Padrões de Criação; Padrões Estruturais
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.

Continue navegando