Padrões estruturais GoF

Veja também

Os padrões estruturais GoF (Gang of Four) ocupam-se do modo como as classes e objetos formam estruturas grandes. Os padrões estruturais de classe usam a herança para compor as interfaces ou implementações. Por exemplo, a herança múltipla determina que uma classe única deve ser uma mistura de mais de uma classe pai. A herança múltipla facilita que as bibliotecas de classes desenvolvidas independentemente trabalhem juntas.

A tabela abaixo descreve cada um dos padrões estruturais GoF:

Nome do padrão Problema de design tratado Função Descrição
Adaptador Converte a interface de uma classe em outra interface esperada pelos clientes. O adaptador elimina interfaces incompatíveis, possibilitando que as classes trabalhem juntas, o que não seria possível de outra forma. Destino Define o conjunto de operações usadas pelo cliente para abstrair uma determinada solicitação.
Cliente Manipula os objetos Destino.
Adaptado Fornece uma adaptação específica que pode ser usada em uma determinada solicitação.
Adaptador Proporciona uma "cola" entre uma solicitação de destino específica e um Adaptado específico, que manipula atualmente a solicitação.
Ponte Fornece um mecanismo abstrato que permite implementações específicas de um comportamento em particular para que possam variar. Abstração Define a interface abstrata que será implementada pela AbstraçãoRedefinida.
AbstraçãoRedefinida Implementa as operações declaradas na interface da abstração.
Implementador Define a interface abstrata que será implementada pelo ImplementadorConcreto. A abstração usa o Implementador.
ImplementadorConcreto Implementa as operações declaradas na interface do implementador.
Composto O composto permite que os clientes manipulem os objetos que podem conter outros objetos em um modo uniforme. Componente Define a interface fundamental que todos os objetos devem implementar para participar da composição.
Folha Objeto que não contém outros objetos em relação à composição.
Composto Objeto que contém outros objetos que se ajustam à interface do componente.
Cliente Manipula o objeto Componente.
Decorador Anexa dinamicamente responsabilidades adicionais a um objeto. Os decoradores estendem a funcionalidade proporcionando uma alternativa flexível para a formação de subclasses. Componente Define a interface abstrata que deve ser implementada por qualquer objeto que queira ser decorado dinamicamente.
ComponenteConcreto Implementa as operações declaradas na interface do componente.
Decorador Interface abstrata implementada pelo DecoradorConcreto.
DecoradorConcreto Implementa as operações declaradas na interface do decorador.
Fachada Fornece um ponto de entrada de nível superior a um subsistema potencialmente complexo, tornando, desta modo, tal subsistema mais gerenciável para o cliente. Fachada Objeto responsável pela delegação de solicitação.
Subsistema Implementa solicitações específicas à medida que são delegadas pelo objeto Fachada.
Peso-mosca O compartilhamento é usado para suportar grandes quantidades de objetos refinados eficientemente. Peso-mosca Define uma interface abstrata usada pelos clientes para manipular o estado que não pode ser compartilhado entre Peso-moscasConcretos.
Peso-moscaConcreto Implementa a interface do peso-mosca, bem como proporciona um local de armazenamento para o estado que pode ser compartilhado.
Peso-moscaConcretoNãoCompartilhado Implementa a interface do peso-mosca, bem como proporciona um local de armazenamento para o estado que não pode ser compartilhado.
FábricaDePeso-mosca Fornece operações para a criação de objetos Peso-moscaConcreto.
Cliente Manipula os vários objetos Peso-mosca.
Proxy Um proxy ou espaço reservado é fornecido por outro objeto que controla o acesso a ele. Proxy Implementa a interface definida pelo sujeito que, por sua vez, passa todas as solicitações através de tal interface ao SujeitoReal.
Sujeito Define o conjunto de operações que o SujeitoReal e o Proxy devem implementar.
Veja também
Padrões de design GoF
Padrões comportamentais GoF
Padrões de criação GoF

Notificações legais