Le modèle de la chaîne de responsabilité est le modèle de comportement d'un objet. En mode chaîne de responsabilité, de nombreux objets sont connectés par la référence de chaque objet à sa prochaine maison pour former une chaîne. La demande est transmise sur cette chaîne jusqu'à ce qu'un objet sur la chaîne décide de traiter la demande. Le client qui fait cette demande ne sait pas quel objet sur la chaîne gère finalement la demande, ce qui permet au système de réorganiser et d'attribuer des responsabilités sans affecter dynamiquement le client.
Le modèle de chaîne de responsabilité est l'un des modèles de conception comportementale. Comment comprendre la chaîne de responsabilités? La chaîne de responsabilités peut être comprise comme reliant plusieurs objets au début et à la fin. Chaque nœud est un objet, et chaque objet correspond à une logique de traitement différente jusqu'à ce qu'un objet réponde à la fin de la demande de traitement. Ce modèle devient le modèle de chaîne de responsabilité.
Pouvons-nous trouver un prototype du modèle de chaîne de responsabilité dans la vie? Il existe de nombreux exemples de ce type. Par exemple, si vous souhaitez acheter une maison, la première chose est que le vendeur (application 1) vous reçoit. Si vous dites que vous voulez une remise de 3%, il n'y a pas de problème. À l'heure actuelle, le vendeur aura le pouvoir de donner une remise de 3%, et le vendeur (application 1) le gérera. À cette époque, un homme riche est venu et a dit qu'il voulait acheter 10 unités et demander une remise de 5%. Le personnel des ventes (demande 1) n'avait pas le pouvoir de donner une remise de 5%. Il a dû postuler au leader supérieur, au directeur des ventes et au directeur des ventes (demande 2) a approuvé la demande. À cette époque, le mari national Xiao Wang est venu. Xiao Wang a déclaré qu'il avait acheté toutes les propriétés dix pour cent. À l'heure actuelle, le directeur des ventes (cible 2) n'avait pas autant d'autorité et devait demander l'approbation du PDG.
En d'autres termes, chaque client est reçu par un vendeur. Le client propose différentes autorisations et le vendeur le remet à différents objets pour la livraison. Le client ne se soucie pas de quel objet gère sa demande, ce qui réduit la relation de couplage entre l'expéditeur et le destinataire de la demande.
Ci-dessous, nous utilisons une approbation des dépenses de voyage en voyage d'affaires comme exemple pour mettre en œuvre le modèle de chaîne de responsabilité suivant, définissant d'abord un cours de leadership abstrait:
package com.test.demo; Public Abstract Class Class Leader {leader protégé Nexthandler; // Leadership précédent public final void handlerrequest (int money) {if (Money <= limit ()) {// selse {if (nexthandler! = null) {nexthandler.handlerrequest (monery); // laisse-t-il à la limite de la direction de la direction}}}} / * * * * / * * Approbation * / Public Résumé Vide Handler (int Money); }Ceci est une classe abstraite. Ce qui suit l'hérite de plusieurs classes. Tout d'abord, la classe de chef de groupe:
package com.test.demo; La classe publique Groupleader étend le leader {public int limit () {return 1000; // indique que le chef d'équipe a 1 000 yuan d'approbation Authority} public void Handler (int money) {System.out.println ("le chef d'équipe approuvé" + money); }}Catégorie de superviseur:
package com.test.demo; Le directeur de classe publique étend le leader {@Override public int limit () {return 5000; } @Override public void Handler (int Money) {System.out.println ("Le superviseur approuvé" + money); }}Catégorie de gestionnaire:
package com.test.demo; Le gestionnaire de classe publique étend le leader {@Override public int limit () {return 10000; } @Override public void Handler (int Money) {System.out.println ("Le gestionnaire approuvé" + money); }}Catégorie de boss:
package com.test.demo; CLASS PUBLIQUE CEO étend le leader {@Override public int limit () {return Integer.max_value; } @Override public void Handler (int money) {System.out.println ("CEO approuvé" + money); }}Il n'y a pas de limite aux boss. Voici une définition d'un membre du personnel Xiao Zhang de demande de remboursement des voyages:
package com.test.demo; classe publique xiaozhang {public static void main (String [] args) {groupleader groupleader = new groupleader (); Directeur directeur = nouveau directeur (); Manager Manager = new Manager (); PDG PDG = nouveau PDG (); groupleader.nexthandler = directeur; Director.Nexthandler = Manager; manager.nexthandler = PDG; groupleader.HandlerRequest (50000); groupleader.HandlerRequest (500); groupleader.HandlerRequest (5000); }}Xiao Zhang a demandé trois transactions comme le chef d'équipe. Pour le moment, l'exemple d'opération est le suivant:
Nous pouvons voir que différents fonds sont traités par différents objets. Xiao Zhang ne se soucie pas de qui les gère. Il a juste besoin de trouver le chef d'équipe. C'est la caractéristique du modèle de chaîne de responsabilité.
Il s'agit de présenter le contenu pertinent sur le modèle de conception de la chaîne de responsabilité Java. J'espère que cela vous sera utile!