sábado, 21 de outubro de 2023

Design Patterns - Padrões Comportamentais - Command Pattern

O Command Pattern (Padrão Comando) é um padrão de design comportamental que transforma solicitações ou operações em objetos independentes. Ele encapsula uma solicitação como um objeto, permitindo parametrizar clientes com operações, enfileirar solicitações, além de suportar operações que podem ser desfeitas.

Componentes Chave:

  1. Command (Comando): Define uma interface para executar uma ação específica. Geralmente, contém um método execute() que é chamado para realizar a operação associada.

  2. ConcreteCommand (Comando Concreto): Implementa a interface de comando e define a relação entre um objeto receptor e uma ação. Ele invoca métodos do objeto receptor para realizar a ação.

  3. Invoker (Invocador): Solicita que um comando seja executado. Geralmente, mantém uma lista de comandos e pode executar ou enfileirá-los.

  4. Receiver (Receptor): Sabe como realizar a operação associada ao comando. É o objeto que recebe a solicitação do comando.

  5. Client (Cliente): Cria um objeto de comando e associa-o com seu objeto receptor. O cliente também pode configurar o invocador com o comando.

Benefícios:

  1. Desacoplamento: O remetente não precisa conhecer os detalhes do receptor ou da operação sendo executada, promovendo baixo acoplamento.

  2. Enfileiramento e Log: Os comandos podem ser enfileirados, desfeitos e até mesmo registrados para fins de log, fornecendo um controle preciso sobre as ações do sistema.

  3. Flexibilidade: Novos comandos podem ser adicionados sem modificar o código existente, tornando o sistema mais flexível e fácil de estender.

Exemplo Prático:

Considere um controle remoto. Cada botão do controle remoto é um comando que executa uma operação específica em um dispositivo eletrônico (como ligar/desligar uma TV ou ajustar o volume). Cada botão é configurado com um comando específico (ConcreteCommand), que, quando pressionado, executa a operação apropriada no dispositivo (Receptor). O Invocador (o controle remoto) simplesmente aciona o comando associado ao botão pressionado.

Em resumo, o padrão Command é útil quando você precisa desacoplar remetentes de receptores, enfileirar solicitações, ou fornecer suporte a operações que podem ser desfeitas. Ele facilita a manipulação de ações complexas, adicionando uma camada de abstração entre os objetos do sistema.

Nenhum comentário:

Postar um comentário

Design Patterns - Padrões de Criação - Prototype

O padrão Prototype é um padrão de design que permite a criação de novos objetos a partir de um modelo existente, também conhecido como protó...