Skip to content

Instantly share code, notes, and snippets.

@gabrielziegler3
Last active October 14, 2018 21:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gabrielziegler3/f185a2e061ce1bde0f54da9fc8070f6d to your computer and use it in GitHub Desktop.
Save gabrielziegler3/f185a2e061ce1bde0f54da9fc8070f6d to your computer and use it in GitHub Desktop.

Author

Gabriel Ziegler

Design Pattern


Criacionais

  • Factory Method

Encapsular a escolha da classes concreta a ser utilizada na criação do objeto de um determinado tipo

  • Abstract Factory

Encapsular a escolha das classes concretas a serem utilizadas na criação dos objetos de diversas famílias

  • Prototype

Possibilitar a criação de novos objetos a partir da cópia de objetos existentes

  • Builder

Separar o processo de construção de um objeto de sua representação e permitir a sua criação passo a passo. Diferentes tipos de objetos podem ser criado com implementações distintas de cada passo

  • Singleton

Permitir a criação de uma única instância de uma classe e fornecer um modo para recuperá-la.

  • Multiton

Permitir a criação de uma quantidade limitada de instâncias de determinada classe e fornecer um modo para recuperá-las


Estruturais

  • Adapter

Permitir que um objeto seja substituído por outro que, apesar de realizar a mesma tarefa, possui uma interface diferente.

  • Bridge

Bridge separa uma abstração de sua representação, de forma que ambos possam variar e produzir 3 tipos de objetos diferentes.

  • Composite

Agrupar objetos que fazem parte de uma relação parte-todo de forma a tratá-los sem distinção.

  • Decorator

Adicionar funcionalidade a um objeto dinamicamente.

  • Facade

Prover uma interface simplificada para a utilização de várias interfaces de um subsistema

  • Flyweight

Compartilhar, de forma eficiente, objetos que são usados em grande quantidade.

  • Private Clan Data

  • Proxy

Controlar as chamadas a um objeto através de outro objeto de mesma interface.


Comportamentais

  • Chain of Responsibility

  • Command

Controlar as chamadas a um determinado componente, modelando cada requisição como um objeto. Permitir que as operações possam ser desfeitas, enfileiradas ou registradas.

  • Interpreter

  • Iterator

Fornecer um modo eficiente para percorrer sequencialmente os elementos de uma coleção, sem que a estrutura interna da coleção seja exposta.

  • Mediator

Diminuir a quantidade de “ligações” entre objetos introduzindo um mediador, através do qual toda comunicação entre os objetos será realizada.

  • Memento

  • Null Object

  • Observer

Definir um mecanismo eficiente para reagir às alterações realizadas em determinados objetos.

  • State

Alterar o comportamento de um determinado objeto de acordo com o estado no qual ele se encontra.

  • Strategy

Permitir de maneira simples a variação dos algoritmos utilizados na resolução de um determinado problema.

  • Template Method

Definir a ordem na qual determinados passos devem ser realizados na resolução de um problema e permitir que esses passos possam ser realizados de formas diferentes de acordo com a situação.

  • Visitor

Permitir atualizações específicas em uma coleção de objetos de acordo com o tipo particular


Referencial

K 19

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment