(Behavioral mode VI) responsibility chain model

Source: Internet
Author: User

Package com.eyugame.modle;/** * Responsibility Chain Mode * * @author JYC506 * *//* Event receiver */public Abstract class Eventreceiver {private Eve Ntreceiver nexteventreceiver;public void Setnexthandler (Eventreceiver nexteventreceiver) {this.nextEventReceiver = Nexteventreceiver;} Public Response HandleRequest (Request request) {if (This.isok (request)) {return this.getresponse ();} else {if ( This.nexteventreceiver! = null) {return this.nextEventReceiver.handleRequest (request);} else {System.out.println (" No appropriate event recipient "); return null;}}} Public abstract Response GetResponse ();p rotected Abstract Boolean isOk (Request request);p ublic static void Main (string[] args) {/* Creates a request */request requests = new request (COMMAND.EVENT2);/* Code */if in the non-responsible chain mode (request.getcommand () = = Command.event 1) {new EventReceiver1 (). HandleRequest (request);} else if (request.getcommand () = = Command.event2) {New EventReceiver2 ( ). HandleRequest (request);} else if (request.getcommand () = = Command.event3) {new EventReceiver3 (). HandleRequest (request);} else IF (request.getcommand () = = command.event4) {new EventReceiver4 (). HandleRequest (Request); /* Responsibility chain Mode Code *//* is not responsible chain mode is relatively clear point, low coupling, but more memory consumption, because all are in advance and all new objects */eventreceiver Receiver1 = new EventReceiver1 (); Eventreceiver receiver2 = new EventReceiver2 (); Eventreceiver Receiver3 = new EventReceiver3 (); Eventreceiver receiver4 = new EventReceiver4 (); Receiver1.setnexthandler (Receiver2); Receiver2.setnexthandler ( RECEIVER3); Receiver3.setnexthandler (receiver4); receiver1.handlerequest (request);}} /* Return result class */class Response {}/* requests */class request {Command command;public requested (Command command) {super (); This.command = C Ommand;} Public command GetCommand () {return command;} public void SetCommand (Command command) {this.command = command;}} /* Request Commands */enum Command {EVENT1, EVENT2, EVENT3, Event4}class EventReceiver1 extends Eventreceiver {@Overridepublic respons e GetResponse () {System.out.println ("event handler 1 handles and returns the result"); return null;} @Overrideprotected Boolean isOk (Request request) {return Request.getcommand () = = Command.EVENT1;}} Class EventReceiver2 extends Eventreceiver {@Overridepublic Response getResponse () {System.out.println ("event handler 2 processes and returns results "); return null;} @Overrideprotected Boolean isOk (Request request) {return Request.getcommand () = = Command.event2;}} Class EventReceiver3 extends Eventreceiver {@Overridepublic Response getResponse () {System.out.println ("event handler 3 processes and returns results "); return null;} @Overrideprotected Boolean isOk (Request request) {return Request.getcommand () = = Command.event3;}} Class EventReceiver4 extends Eventreceiver {@Overridepublic Response getResponse () {System.out.println ("event handler 4 processes and returns results "); return null;} @Overrideprotected Boolean isOk (Request request) {return Request.getcommand () = = Command.event3;}}

(Behavioral mode VI) responsibility chain model

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.