Compartilhamento de tecnologia

Exploração de padrões de design: padrão de cadeia de responsabilidade

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Qual é o modelo de cadeia de responsabilidade?

modelo de cadeia de responsabilidade (Padrão de Cadeia de Responsabilidade) é um padrão de design comportamental. A definição é a seguinte:

  • Evite acoplar o remetente e o destinatário de uma solicitação e dê a vários objetos a chance de lidar com a solicitação.
  • Conecte os objetos que recebem a solicitação em uma cadeia e passe a solicitação ao longo dessa cadeia até que um objeto possa tratá-la.
    Insira a descrição da imagem aqui

2. O papel do modelo de cadeia de responsabilidade

  • Separe solicitações e processamento de solicitações para melhorar a escalabilidade do código.

3. Estrutura do modelo de cadeia de responsabilidade

Insira a descrição da imagem aqui

O modelo de cadeia de responsabilidade inclui principalmente as seguintes funções:

  • Função do manipulador abstrato: Defina uma interface para processar solicitações, incluindo métodos de processamento abstratos e uma conexão subsequente (cada manipulador na cadeia possui uma variável de membro para salvar uma referência para o próximo manipulador).
  • Função de manipulador de concreto: Implemente o método de processamento do processador abstrato para determinar se a solicitação pode ser processada. Se a solicitação puder ser processada, processe-a, caso contrário, a solicitação será transferida para seu sucessor.
  • Função do cliente: Crie uma cadeia de processamento e envie uma solicitação ao objeto manipulador específico no início da cadeia. Ele não se importa com os detalhes do processamento e solicita o processo de entrega.

No desenvolvimento real, o modelo da cadeia de responsabilidade pode adicionar um gestor da cadeia de responsabilidade para gerir processadores específicos.

4. Aplicação do modelo de cadeia de responsabilidade no desenvolvimento real

No SpringBoot, há muitas maneiras de praticar o padrão de cadeia de responsabilidade. A seguir está um exemplo: lógica de verificação independente múltipla para um processo de pedido.
Insira a descrição da imagem aqui

4.1 Método de implementação 1
  1. Crie Pojo, objeto de pedido
public class OrderContext {
    private String seqId;
    private String userId;
    private Long skuId;
    private Integer amount;
    private String userAddressId;
    // Getters and setters
}