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ó.
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.
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.

Quick reference

  • 1.
    QUICK REFERENCE História: Criadona 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ó.
  • 2.
    Decorator: Anexa responsabilidadesadicionais 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.
  • 3.
    Strategy: Defini umafamí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.