The pattern of the responsibility chain
First, the role
Multiple objects have the opportunity to process the request, avoiding the coupling between the sender and the recipient of the request, connecting the object to a chain, and passing the request along the chain until an object can handle it
Second, class diagram
Third, the realization
(1) Definition handle
Public Abstract classHandle {protectedHandle successor; Public voidSetseccessor (Handle successor) { This. successor =successor; } Public Abstract voidHandleRequest (intrequest);} Public classConcretehandleoneextendsHandle {@Override Public voidHandleRequest (intrequest) { if(Request >= 0 && Request < 10) {System.out.println ("One processing request" +request); } Else if(Successor! =NULL) {successor.handlerequest (request); } }} Public classConcretehandletwoextendsHandle {@Override Public voidHandleRequest (intrequest) { if(Request >= && Request < 20) {System.out.println ("Processing Request" +request); } Else if(Successor! =NULL) {successor.handlerequest (request); } }} Public classConcretehandlethreeextendsHandle {@Override Public voidHandleRequest (intrequest) { if(Request > 20) {System.out.println ("Three processing request" +request); } Else if(Successor! =NULL) {successor.handlerequest (request); } }}View Code
(2) Client Test class
public class Client { public static void main (string[] args) {Handle H1 = new Concretehandleone (); Handle H2 = Concretehandletwo (); Handle h3 = Concretehandlethree (); H1.successor = H2; H2.successor = H3; int request = 14
View Code
Design pattern Start--responsibility chain mode