A cadeia de padrão de responsabilidade é o padrão de comportamento de um objeto. Na cadeia do modo de responsabilidade, muitos objetos são conectados pela referência de cada objeto à sua próxima casa para formar uma cadeia. A solicitação é passada nessa cadeia até que um objeto na cadeia decida processar a solicitação. O cliente que faz essa solicitação não sabe qual objeto na cadeia lida com a solicitação, que permite ao sistema reorganizar e atribuir responsabilidades dinamicamente sem afetar o cliente.
O modelo de cadeia de responsabilidade é um dos modelos de design comportamental. Como entender a cadeia de responsabilidade? A cadeia de responsabilidade pode ser entendida como conectando vários objetos no início e no final. Cada nó é um objeto e cada objeto corresponde a uma lógica de processamento diferente até que um objeto responda à solicitação de processamento termina. Este modelo se torna o modelo de cadeia de responsabilidade.
Podemos encontrar um protótipo do modelo de cadeia de responsabilidade na vida? Existem muitos exemplos desse tipo. Por exemplo, se você deseja comprar uma casa, a primeira coisa é que o vendedor (Application 1) recebe você. Se você diz que deseja um desconto de 3%, não há problema. Neste momento, o vendedor terá autoridade para dar um desconto de 3% e o vendedor (aplicação 1) lidará com isso. Nesse momento, um homem rico veio e disse que queria comprar 10 unidades e pediu um desconto de 5%. A equipe de vendas (aplicação 1) não tinha autoridade para dar um desconto de 5%. Ele teve que se inscrever no líder superior, diretor de vendas e diretor de vendas (Application 2) aprovou o aplicativo. Nesse momento, o marido nacional Xiao Wang veio. Xiao Wang disse que havia comprado todas as propriedades dez por cento. No momento, o Diretor de Vendas (Target 2) não tinha tanta autoridade e teve que solicitar a aprovação do CEO.
Em outras palavras, cada cliente é recebido por um vendedor. O cliente propõe diferentes permissões e o vendedor a entrega a diferentes objetos para entrega. O cliente não se importa com qual objeto lida com sua solicitação, que reduz a relação de acoplamento entre o remetente e o destinatário da solicitação.
Abaixo, usamos uma aprovação de despesas de viagem de viagem de negócios como exemplo para implementar o seguinte modelo de cadeia de responsabilidade, definindo primeiro uma classe de liderança abstrata:
pacote com.test.demo; líder de classe abstrata public {líder protegido nexthandler; // Liderança anterior public Final Void HandlerRequest (int Money) {if (dinheiro <= limite ()) {// sels {if (nexthandler! = null) {nexthandler.HandlerRequest (dinheiro); /** Aprovação*/ Public Resumo Void Handler (INT Money); }Esta é uma classe abstrata. O seguinte o herda através de várias classes. Primeiro, a aula de líder do grupo:
pacote com.test.demo; public class Grouppleader estende o líder {public int limite () {retorna 1000; // indica que o líder da equipe possui 1.000 yuan Autoridade de aprovação} Public void Handler (int Money) {System.out.println ("O líder da equipe aprovou"+dinheiro); }}Categoria de supervisor:
pacote com.test.demo; public class Diretor estende o líder {@Override public int limite () {return 5000; } @Override public void Handler (int Money) {System.out.println ("O supervisor aprovado"+dinheiro); }}Categoria de gerente:
pacote com.test.demo; public class Manager estende o líder {@Override public int limite () {return 10000; } @Override public void Handler (int Money) {System.out.println ("O gerente aprovou"+dinheiro); }}Categoria de chefe:
pacote com.test.demo; public class CEO estende o líder {@Override public int limite () {return Integer.max_value; } @Override public void Handler (int Money) {System.out.println ("CEO aprovado"+dinheiro); }}Não há limite para os chefes. Aqui está uma definição de um membro da equipe, Xiao Zhang, solicitando reembolso de viagens:
pacote com.test.demo; classe pública xiaozhang {public static void main (string [] args) {groupleader groupleader = new groupleader (); Diretor Diretor = New Diretor (); Gerente gerente = novo gerente (); CEO CEO = novo CEO (); groupleader.nexthandler = diretor; diretor.nextHandler = gerente; gerente.nexthandler = CEO; groupleader.HandlerRequest (50000); groupleader.HandlerRequest (500); groupleader.HandlerRequest (5000); }}Xiao Zhang solicitou três transações como o líder da equipe. Neste momento, o exemplo da operação é o seguinte:
Podemos ver que diferentes fundos são processados por diferentes objetos. Xiao Zhang não se importa com quem os lida. Ele só precisa encontrar o líder da equipe. Esta é a característica do modelo de cadeia de responsabilidade.
Isso é tudo para você apresentar o conteúdo relevante no modelo de design da cadeia de responsabilidade Java. Espero que seja útil para você!