Quem decide a troca?
O cliente escolhe a estratégia; elas não se conhecem.
Os estados trocam a si mesmos e conhecem as transições válidas.
Vários padrões têm diagramas praticamente idênticos e se distinguem apenas pela intenção. Para cada dupla abaixo há uma única pergunta que resolve a dúvida.
Quem decide a troca?
O cliente escolhe a estratégia; elas não se conhecem.
Os estados trocam a si mesmos e conhecem as transições válidas.
Composição ou herança?
Composição: troca o algoritmo inteiro em tempo de execução.
Herança: fixa o esqueleto e varia só algumas etapas.
Quem controla o objeto interno?
O cliente empilha decoradores conforme quer enriquecer.
O proxy normalmente cria e gerencia o objeto real sozinho.
Uma interface existente ou uma nova?
Adapter faz um objeto caber numa interface que já existe.
Facade inventa uma interface nova e simples para vários objetos.
Os colegas conhecem o intermediário?
Não. O subsistema ignora a fachada; o fluxo é unidirecional.
Sim. Os componentes falam com o mediador; o fluxo é bidirecional.
Um produto ou uma família?
Um produto, definido por herança na subclasse do criador.
Uma família coerente, entregue por um objeto fábrica.
Quantos filhos?
Muitos — é uma árvore todo-parte.
Exatamente um — é uma camada que enriquece.
Pode interromper?
Sim, um elo pode tratar e parar a propagação.
Não, todas as camadas participam da chamada.
Um-para-muitos ou muitos-para-muitos?
Um publicador notifica N assinantes que ele não conhece.
N colegas coordenam-se através de um hub que os conhece.
Dimensão estrutural ou algoritmo?
Bridge separa duas hierarquias que evoluem em paralelo.
Strategy troca a forma de executar uma operação.
O que é encapsulado?
Uma AÇÃO completa a ser executada depois (com undo, fila, log).
Um MODO de fazer algo, usado agora pelo contexto.
Estado ou operação?
Memento fotografa COMO estava.
Command sabe O QUE foi feito e como reverter.
Escolha até três padrões e leia-os linha a linha. Útil quando a dúvida não está na lista acima.