Programe para uma interface, não para uma implementação
O primeiro dos dois princípios do livro. Se seu código depende da interface, qualquer implementação serve — e é isso que torna possível trocar, testar e estender.
Ler o catálogo em ordem alfabética é a pior forma de aprender padrões. Esta ordem vai do que você usa toda semana ao que talvez encontre uma vez na carreira. Marque o que já estudou — fica salvo neste navegador.
Os 23 padrões são aplicações de meia dúzia de ideias. Quem entende as ideias deduz boa parte dos padrões — e reconhece quando nenhum deles serve.
O primeiro dos dois princípios do livro. Se seu código depende da interface, qualquer implementação serve — e é isso que torna possível trocar, testar e estender.
Herança é decidida em tempo de compilação e expõe as tripas da superclasse. Composição é decidida em tempo de execução e só depende de interfaces.
Identifique o que muda no seu sistema e separe do que permanece igual. Quase todo padrão é uma aplicação disso: o que varia vira um objeto próprio.
Deve ser possível adicionar comportamento sem editar o código que já funciona — porque código editado é código que pode quebrar.
DecoratorVisitorChain of ResponsibilityObserverAbstract Factory
Objetos precisam colaborar, mas quanto menos souberem uns dos outros, mais fácil é mudar qualquer um deles isoladamente.