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.
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
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.
4.1 Método de implementação 1
Crie Pojo, objeto de pedido
publicclassOrderContext{privateString seqId;privateString userId;privateLong skuId;privateInteger amount;privateString userAddressId;// Getters and setters}