设计模式之责任链模式
来源:互联网 发布:新浪微博如何解绑淘宝 编辑:程序博客网 时间:2024/04/28 22:21
1)责任链模式:使多个对象有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。
将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。
2)
public abstract class Handler {private Handler nextHandler;protected abstract Level getHandlerLevel();protected abstract Response echo(Request request);// 每个处理者都必须对请求做出处理public final Response handleMessage(Request request){Response response = null;// 判断是否是自己的处理级别if(this.getHandlerLevel().equals(request.getRequestLevel())){response = this.echo(request);}else {if(this.nextHandler != null){this.nextHandler.handleMessage(request);}else{System.out.println("没有适当处理!");}}}}
3)类图
4)有点:责任链将请求和处理分开。请求不用知道是谁处理,处理者可以不用知道请求的全貌。
5)缺点:A、性能问题,每个请求从链头遍历到链尾,特别是在链比较长的时候,性能是一个非常大的问题。
B、调试不方便,特别是链条比较长,环节比较多的场合,由于采用类似的递归的方式,调试的时候逻辑可能比较复杂。
0 0
- 设计模式之责任链
- 设计模式之责任链
- 设计模式之【责任链】
- 设计模式之责任链
- 设计模式之责任链
- 设计模式之责任链
- 十 设计模式之责任链模式
- 设计模式之--责任链模式
- 设计模式之责任链模式
- 设计模式之责任链模式
- 【设计模式】之责任链模式
- java设计模式之责任链模式
- 设计模式之(责任链模式)
- 设计模式之--责任链模式
- 设计模式之责任链模式
- 设计模式之责任链模式
- 设计模式之责任链模式
- 设计模式之责任链模式
- 一头扎进Spring源码之获取与切入思路
- iOS使用ZBar实现二维码扫描以及实现识别相册中二维码图片功能
- soapui 测试 rest webservice Post方式接口
- Win7,64位下安装Python2.7.2
- 解决CentOS下不能使用NFS+Lighttpd(或者httpd)提供web服务的问题
- 设计模式之责任链模式
- 软件测试基础---下
- 实验2
- mssql高效的分页存储过程
- Java 使用Freemarker导出word 文档,解决当一段内容中既有文字又有图片的问题
- 大话数据结构06—— 树
- Linux学习日志(5)
- ORCAD导出BOM
- Windows10安装TensorFlow GPU版本