Propósito | Design Pattern | Aspecto(s) que varia(m) (O que pode mudar sem redesign) |
Criação | Abstract Factory | Famílias de objetos-produto |
Builder | Como um objeto composto é criado | |
Factory Method | Subclasse do objeto que é instanciado | |
Prototype | A classe do objeto que é instanciado | |
Singleton | A única instância de uma classe | |
Estrutura | Adapter | A interface para acessar um objeto |
Bridge | A implementação de um objeto | |
Composite | A estrutura e composição de um objeto | |
Decorator | As responsabilidades de um objeto (sem uso de herança) | |
Façade | A interface de um subsistema | |
Flyweight | O custo de armazenamento de objetos | |
Proxy | Como um objeto é acessado; sua localização | |
Comportamento | Chain of Responsibility | O objeto que pode atender a um pedido |
Command | Quando e como um pedido é atendido | |
Interpreter | Gramática e interpretação de uma linguagem | |
Iterator | Como os elementos de uma coleção são acessados, varridos | |
Mediator | Como e quais objetos interagem uns com os outros | |
Memento | Qual informação privada é armazenada fora de um objeto, e quando | |
Observer | O número de objetos que dependem de um outro objeto; como os objetos dependentes ficam atualizados | |
State | Os estados de um objeto | |
Strategy | Um algoritmo | |
Template Method | Certas etapas de um algoritmo | |
Visitor | Operações que podem ser aplicadas a objetos sem mudar suas classes |