Padrões comportamentais GoF

Veja também

Os padrões comportamentais GoF (Gang of Four) tratam dos algoritmos de objetos e da atribuição de responsabilidades entre os objetos. Estes padrões também se destinam à comunicação entre estes objetos e representam a interconexão entre tais objetos. Esta interconexão pode incluir herança e a realização de tarefas.

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

Nome do padrão Problema de design tratado Função Descrição
Cadeia de responsabilidades Ao dar a mais de um objeto a possibilidade de manipular uma solicitação, você pode impedir a união do remetente de tal solicitação ao seu destinatário. Os objetos de recebimento estão encadeados e a solicitação é passada pela cadeia até que um objeto a manipule. Manipulador Define uma interface abstrata usada para solicitações específicas.
ManipuladorConcreto Implementa as operações declaradas na interface do manipulador.
Cliente Inicia a comunicação através de um manipulador concreto.
Padrão de comando É possível parametrizar os clientes com diferentes solicitações encapsulando uma solicitação como um objeto. Também é possível registrar ou colocar em fila as solicitações e suportar operações que não podem ser desfeitas. Comando Define uma interface abstrata para execução de operações.
ComandoConcreto Implementa as operações declaradas na interface do comando.
Cliente Cria um objeto ComandoConcreto.
Chamador Executa a interface definida no objeto derivado do Comando.
Receber Realiza a implementação concreta da operação solicitada.
Intérprete Define uma representação da gramática de um dado idioma. Um intérprete usa a representação para interpretar frases do idioma. ExpressãoAbstrata Define uma operação de interpretação abstrata que deve ser implementada por todos os nós na árvore de sintaxe abstrata.
ExpressãoTerminal Proporciona uma implementação concreta da operação de interpretação associada especificamente a símbolos terminais na gramática.
ExpressãoNãoTerminal Proporciona uma implementação concreta da operação de interpretação associada especificamente a símbolos não terminais na gramática.
Repetidor Proporciona um mecanismo uniforme para a navegação de elementos diferentes em um conjunto sem expor detalhes de implementação específicos do elemento no qual se está navegando. Repetidor Define uma interface abstrata usada para navegar elementos.
RepetidorConcreto Implementa as operações declaradas na interface do repetidor.
Agrupamento Define uma interface abstrata usada para criar um objeto RepetidorConcreto.
AgrupamentoConcreto Implementa as operações declaradas na interface do agrupamento.
Mediador Proporciona um mecanismo uniforme para a navegação de elementos diferentes em um conjunto sem expor detalhes de implementação específicos do elemento no qual se está navegando. Repetidor Define uma interface abstrata usada para navegar elementos.
Repetidor concreto Implementa as operações declaradas na interface do repetidor.
Agrupamento Define uma interface abstrata usada para criar um objeto RepetidorConcreto.
Agrupamento concreto Implementa as operações declaradas na interface do agrupamento.
Memento O estado interno do objeto pode ser capturado e exteriorizado para que, mais tarde, o objeto possa ser restaurado para este estado. Este processo é feito sem violar a encapsulamento. Memento Objeto que gerencia o estado do Originador em um dado momento no tempo.
Originador Cria um objeto Memento, proporcionando a este objeto as informações de estado necessárias no contexto atual.
Zelador Agrupa objetos Memento.
Observador Uma dependência um-por-vários é definida entre objetos. Quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. Sujeito Define uma interface abstrata usada para anexar vários observadores a este sujeito.
Observador Define uma interface abstrata usada quando o sujeito que está sendo observado está sendo atualizado.
SujeitoConcreto Implementa as operações declaradas na interface do sujeito.
ObservadorConcreto Implementa as operações declaradas na interface do observador.
Estado Proporciona um mecanismo que permite que um objeto altere seu comportamento quando ocorrerem alterações do estado interno. Contexto Define a interface usada pelos clientes para ter acesso ao estado do contexto.
Estado Define uma interface abstrata que deve ser implementada pelo EstadoConcreto. A interface é específica do domínio.
EstadoConcreto Implementa as operações declaradas na interface do estado.
Estratégia Uma família de algoritmos está definida, cada uma está encapsulada e pode ser permutável. O algoritmo pode variar independentemente dos clientes que o utiliza. Estratégia Define uma interface abstrata implementada por objetos EstratégiaConcreta.
EstratégiaConcreta Implementa as operações declaradas na interface da estratégia.
Contexto Agrega objetos que implementam a interface da estratégia.
MétodoModelo A estrutura de um algoritmo é definida em uma operação e algumas etapas estão submetidas às subclasses. Sem alterar a estrutura do algoritmo, as subclasses podem redefinir certas etapas de um algoritmo. ClasseAbstrata Define as várias operações que podem ser anuladas pela ClasseConcreta.
ClasseConcreta Implementa as operações específicas definidas na ClasseAbstrata.
Visitante O visitante representa uma operação que deve ser realizada sobre os elementos de uma estrutura de objetos. É possível definir uma nova operação sem alterar as classes dos elementos nos quais opera. Visitante Fornece operações específicas a elementos concretos que permitem que este objeto Visitante os visite.
VisitanteConcreto Implementa as operações declaradas na interface do visitante.
Elemento Declara uma operação Aceitar que permite aos objetos Visitantes processar o elemento atual.
ElementoConcreto Implementa as operações declaradas na interface do elemento.
EstruturaDeObjetos Gerencia a colaboração entre os objetos VisitanteConcreto e ElementoConcreto.
Veja também
Padrões de criação GoF
Padrões estruturais GoF

Notificações legais