Problema Resolvido: Permite que objetos interessados sejam notificados automaticamente de mudanças em um objeto.
Solução: O padrão Observer define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.
Diagrama UML:
Exemplo de Código: Veja o exemplo em Observer.
Problema Resolvido: Encapsula a criação de objetos, permitindo que as subclasses escolham quais classes instanciar.
Solução: O padrão Factory Method define uma interface para criar um objeto, mas permite que as subclasses alterem o tipo de objetos que serão criados.
Diagrama UML:
Exemplo de Código: Veja o exemplo em FactoryMethod.
Problema Resolvido: Permite que interfaces incompatíveis trabalhem juntas.
Solução: O padrão Adapter converte a interface de uma classe em outra interface que um cliente espera encontrar. Ele permite que classes com interfaces incompatíveis trabalhem juntas.
Diagrama UML:
Exemplo de Código: Veja o exemplo em Adapter.