sexta-feira, 20 de outubro de 2023

Design Patterns - Padrões Comportamentais - Chain of Responsibility Pattern

O Chain of Responsibility Pattern (Padrão Corrente de Responsabilidade) é um padrão de design comportamental que permite passar solicitações ao longo de uma cadeia de manipuladores. Cada manipulador decide, com base na sua lógica, se processa a solicitação ou a passa para o próximo manipulador na cadeia.

Componentes Chave:

  1. Handler (Manipulador): Define uma interface para lidar com solicitações. Implementações concretas decidem se processam a solicitação e/ou passam a solicitação para o próximo manipulador na cadeia.

  2. ConcreteHandler (Manipulador Concreto): Implementa a interface do manipulador. Cada manipulador decide se processa a solicitação ou a passa para o próximo manipulador na cadeia.

Benefícios:

  1. Desacoplamento: O remetente da solicitação não precisa saber qual objeto está lidando com a solicitação, resultando em um baixo acoplamento entre os objetos.

  2. Flexibilidade: Você pode adicionar ou remover manipuladores da cadeia sem alterar o código do cliente.

  3. Reusabilidade: Os manipuladores podem ser reutilizados em diferentes contextos ou cadeias.

Exemplo Prático:

Imagine um sistema de aprovação de documentos, onde diferentes funcionários têm autoridade para aprovar documentos até um determinado valor. O padrão Chain of Responsibility pode ser aplicado aqui. Cada nível de autoridade (por exemplo, Gerente, Diretor, CEO) é representado por um manipulador. Quando uma solicitação de aprovação é recebida, o manipulador adequado (baseado no valor do documento) decide se deve aprovar ou passar a solicitação para o próximo nível de autoridade.

Em resumo, o padrão Chain of Responsibility é útil quando você quer evitar acoplamentos rígidos entre remetentes de solicitações e seus receptores, permitindo que mais de um objeto possa tratar a solicitação. Ele promove a flexibilidade e a reutilização de código, tornando-o valioso em cenários onde o processamento de solicitações pode variar dinamicamente ou em situações onde um número desconhecido de objetos pode manipular uma solicitação.

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ó...