Converter a interface de uma classe em outra
interface, esperada pelos clientes. Permite que
classes com interfaces incompatíveis trabalhem em
conjunto.
Facade
Fornece uma interface unificada para um
conjunto de interfaces em um subsistema. Define
uma interface de nível mais alto que torna o
subsistema mais fácil de ser usado
Composite
Definir uma interface que se aplica a
objetos individuais ou a grupos de
objetos
Árvore Abstrata
Bridge
Desacoplar uma abstração da sua
implementação, tornando-as
independente para variar
Responsabilidade
Singleton
Garantir que uma classe
tenha somente uma
instância e fornece um
ponto global de acesso
para a mesma
Uma estrutura de Arquivos - Classe única
Observer
Definir uma dependência um-para-muitos entre
objetos, de maneira que quando um objeto muda
de estado todos os seus dependentes são
notificados e atualizados automaticamente.
Broadcast - muda e avisa a galera que mudou
Mediator
Centralizar responsabilidade
(ENCAPSULAR) em uma classe
que supervisiona como um
conjunto de outros objetos
interagem
Diretor
Proxy
Fornece um substituto ou
marcador da localização de
outro objeto para controlar o
acesso a esse objeto
HTML
C++11
SmartPointers
unique_ptr
shared_ptr
weak_ptr
Chain of responsability
Permitir que uma
requisição passe
por uma sequência
de objetos até
encontrar um que
possa atendê-la
Flyweight
Usar compatilhamento para
suportar eficientemente
grandes quantidades de
objetos de granularidade
fina.
Sopa de Letras
Construção
Bilder
Obter
gradualmente
informações para
construir um objeto
LEGO - Construir por partes
Factory Method
Definir uma interface para criar um objeto,
mas deixar as subclasses decidirem que
classe instanciar. Permite que o cliente seja
desenvolvido sem definir a classe concreta
que será instanciada
Abstract Factory
Fornece interface para construção de famílias de
objetos relacionados ou dependentes sem
especificar suas classes concretas
Prototype
Especificar os tipos de objetos a serem
criados usando uma instância-protótipo
e criar novos objetos pela cópia desses
protótipos
Partitura musical
Memento
Reconstruir um objeto a
partir de informação de
estado anteriormente
salva
Ctrl + Z
Extensão
Decorator
Dinamicamente, agregar responsabilidade adicionais a um
objeto. Alternativa flexível ao uso de subclasses para
extensão de funcionalidade
Iterator
Provê um modo de acessar sequencialmente os
elementos de uma agregação (coleções) sem
precisar expor sua representação interna
Vetor[]; Arvore; LinkedList
Visitor
Definir uma nova operação para
uma classe em tempo de execução
sem alterar sua estrutura
Quebra de Encapsulamento!
Operação
Template Method
Definir o esqueleto de um algoritmo em uma
operação, postergando alguns passos para as
subclasses. Subclasses redefinem certos passos de um
algoritmo sem mudar a estrutura do mesmo
State
Permite a um objeto alterar seu
comportamento quando o seu
estado interno muda. O Objeto
parecerá ter mudado sua classe
Conexão TCP
Strategy
Permitir definir uma família de
algoritmos, encapsular cada um deles,
e torná-los intercambíveis
Command
Encapsular uma solicitação como um
objeto, desta forma permitindo
parametrizar clientes com diferentes
solicitações, enfileirar ou fazer o
registro(log) de solicitações e suportar
operações que podem ser desfeitas
Interpreter
Distribuir uma operação de modo que
cada implementação seja aplicável a um
tipo diferente de composição
Ctrl + F
Propósitos
Criação
Preocupa-se com o
processo de criação de
objetos
Estrutural
Composição de
classes ou Objetos
Comportamental
Caracterizam as maneiras
pelas quais Classes ou
objetos Interagem e
distribuem responsabilidade