责任链模式 雨点打透心脏的1/2处 2022-03-28 10:08 253阅读 0赞 责任链模式的定义: Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chaing until an object handles it; 使用多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求, 知道有对象处理它为止。 ![697878-20160512145707671-1257601599.png][] //抽象处理者 public abstract class Handler{ private Handler nextHandler; public final Response handleMessage(Request request){ Resonpse response=null; if(this.getHandlerLevel().equals(requset.getRequestLevel())){ response=this.echo(request); }else{ if(this.nextHandler !=null){ response=this.nextHandler.handleMessage(request); }else{ //..... } } return response; } public void setNext(Handler _handler){ this.nextHandler=_handler; } protected abstract Level getHandlerLevel(); protected abstract Response echo(Request request); } //具体处理者 public class ConcreteHandler1 extends Handler{ protected Response echo(Request request){ return null; } protected Level getHandlerLevel(){ return null; } } public class ConcreteHandler2 extends Handler{ protected Response echo(Request request){ return null; } protected Level getHandlerLevel(){ return null; } } public class ConcreteHandler3 extends Handler{ protected Response echo(Request request){ return null; } protected Level getHandlerLevel(){ return null; } } public class Level{} public class Request{} public class Response{} //场景类 public class Client{ public static void main(String[] args){ Handler handler1=new ConcreteHanlder1(); Handler handler2=new ConcreteHanlder2(); Handler handler3=new ConcreteHanlder3(); handler1.setNext(hanlder2); handler2.setNext(handler3); Response response=handler1.handlerMessage(new Request()); } } 责任链模式优点:将请求和处理分开。请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌 缺点:一是性能问题,每个请求都是从链头遍历到链尾,特别是链比较长时,性能是一个非常大的问题 二是调试不很方便,特别是链比较长时 注意事项:链中节点数量要控制,避免出现超长链的情况,一般的做法是在Handler中设置一个最大的节点数量,在setNext方法 中判断是否已经超过其阈值,超过则不允许该链建立,避免无意识的破坏系统性能 [697878-20160512145707671-1257601599.png]: /images/20220328/e99fe3ed32a046128d5abfa11ae4fa4b.png
相关 责任链模式 > 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求 电玩女神/ 2022年05月19日 09:20/ 0 赞/ 212 阅读
相关 责任链模式 击鼓传花之责任链模式。 责任链模式:请求的发送者和请求的处理者解耦。 让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 ╰半橙微兮°/ 2022年05月19日 04:46/ 0 赞/ 210 阅读
相关 责任链模式 在公众号的前面我们说策略模式的时候,我们说各种策略的对象和一个行为随着策略对象改变而改变的。换句话说,针对客户端传来不同的参数进行实例不同策略的对象,也就是说保证了客户端和服务 客官°小女子只卖身不卖艺/ 2022年05月08日 02:04/ 0 赞/ 211 阅读
相关 责任链模式 责任链模式的定义: Avoid coupling the sender of a request to its receiver by giving more than o 雨点打透心脏的1/2处/ 2022年03月28日 10:08/ 0 赞/ 254 阅读
相关 责任链模式 责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 是用来解决有依赖 怼烎@/ 2021年10月01日 08:18/ 0 赞/ 448 阅读
相关 责任链模式 //抽象处理者 public abstract class Handler { protected Handler successor = null; 喜欢ヅ旅行/ 2021年09月28日 07:46/ 0 赞/ 384 阅读
相关 责任链模式 责任链模式 目录 责任链模式 1.什么是责任链模式 2.责任链模式的实现 3.责任链模式的优缺点 4.责任链模式的使用场景 1.什么是责任链模式 电玩女神/ 2021年09月22日 16:40/ 0 赞/ 374 阅读
相关 责任链模式 17.责任链模式 ![70][] public class PurchaseRequest// 采购请求 { 深藏阁楼爱情的钟/ 2021年09月17日 00:04/ 0 赞/ 354 阅读
相关 责任链模式 一 点睛 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等 雨点打透心脏的1/2处/ 2021年07月24日 20:07/ 0 赞/ 403 阅读
相关 责任链模式 名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦... 小灰灰/ 2020年06月13日 05:47/ 0 赞/ 723 阅读
还没有评论,来说两句吧...