Quick reference

3
QUICK REFERENCE História: Criado na década de 70. Em 1987 surgiram os primeiros padrões de projetos. Em 1995 ganhou popularidade com o livro do GoF. Conceito: Um Pattern descreve uma solução comprovada para um problema recorrente. Características: Encapsulamento, Generalidade, Equilíbrio, Abstração, Abertura, Combinatoriedade. Além das características, deve ter um formato em 5 partes: Nome, Exemplos, Contexto, Problema, Solução. Padrões de Criação: Abstract Factory: permite a criação de famílias de objetos relacionados ou dependentes, através de uma única interface, sem que a classe concreta seja especificada. Builder: Define uma interface para criar um objeto, mas é a subclasse quem decide qual objeto será instanciado. Prototype: Específica o tipo de objeto a ser criado através de uma instância de objeto protótipo. Singleton: Este padrão garante a existência de apenas uma instância de uma classe, mantendo um ponto global de acesso ao seu objeto. Padrões Estruturais: Adapter: adapta a interface de uma classe, para que ela possa interagir com outras. Bridge: Padrão que faz a interface variar independentemente das suas implementações. Composite: Possibilita enxergar um conjunto (composição) de objetos como se fosse um só.

Transcript of Quick reference

Page 1: Quick reference

QUICK REFERENCE

História: Criado na década de 70. Em 1987 surgiram os primeiros padrões de projetos.

Em 1995 ganhou popularidade com o livro do GoF.

Conceito: Um Pattern descreve uma solução comprovada para um problema

recorrente. Características: Encapsulamento, Generalidade, Equilíbrio, Abstração,

Abertura, Combinatoriedade. Além das características, deve ter um formato em 5 partes:

Nome, Exemplos, Contexto, Problema, Solução.

Padrões de Criação:

Abstract Factory: permite a criação de famílias de objetos relacionados ou

dependentes, através de uma única interface, sem que a classe concreta seja

especificada.

Builder: Define uma interface para criar um objeto, mas é a subclasse quem

decide qual objeto será instanciado.

Prototype: Específica o tipo de objeto a ser criado através de uma instância de

objeto protótipo.

Singleton: Este padrão garante a existência de apenas uma instância de uma

classe, mantendo um ponto global de acesso ao seu objeto.

Padrões Estruturais:

Adapter: adapta a interface de uma classe, para que ela possa interagir com

outras.

Bridge: Padrão que faz a interface variar independentemente das suas

implementações.

Composite: Possibilita enxergar um conjunto (composição) de objetos como se

fosse um só.

Page 2: Quick reference

Decorator: Anexa responsabilidades adicionais a um objeto dinamicamente.

Façade: disponibiliza uma interface para uma grande quantidade de funcionalidades de uma API.

Flyweight: define como compartilhar objetos para que os mesmos possam ser usados em vários locais ao mesmo tempo, sendo assim, o padrão flyweight atua de forma

independente em cada local, similar a um pool.

Proxy: funciona de interface para outra classe.

Padrões Comportamentais:

Chain of Responsability: Representa o encadeamento de objetos

receptores para o processamento de uma série de solicitações diferentes.

Command: Encapsula uma solicitação como um objeto. Desta forma permite

que clientes realizem diferentes solicitações.

Interpreter: Um padrão interpreter define a linguagem, assim como

representações para gramáticas e abstrações para análises sintáticas.

Iterator: permite a iteração, e um modo de acesso a elementos de um agregado de objetos, sequencialmente, sem exposição de estruturas internas.

Mediator: Define um objeto que encapsula as interações entre esse grupo.

Memento: armazena o estado interno de um objeto em um determinado

momento, para que seja possível retorná-lo a este estado, caso necessário.

Observer: Relação um para todos, dessa forma quando este um altera seu status, todos atualizam automaticamente.

State: É usado para permitir que um objeto altere seu comportamento quando

um estado muda.

Page 3: Quick reference

Strategy: Defini uma família de algoritmos e encapsula cada algoritmo como

uma classe, permitindo assim que elas possam ser trocados entre si. Este padrão

permite que o algoritmo possa variar independentemente dos clientes que o

utilizam.

Template Method: Define o esqueleto de um algoritmo numa operação,

passando alguns passos para as subclasses.

Visitor: adicionar novas funcionalidades a estruturas de um objeto pré-existente

sem a necessidade de modificá-las.