职责模式——行为设计模式之四
来源:互联网 发布:python 登入h3c交换机 编辑:程序博客网 时间:2024/06/07 10:22
一、职责链模式
使对个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系.将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
客户端发出的请求时,并不知道哪一个对象最终处理这个请求,请求只是沿链传递,直至有一个对象负责处理它,且链中的对象自己也并不知道链的结构。这样系统的更改可以在不影响客户端的情况下动态的重新组织和分配责任,简化了对象的相互连接,他们仅需保持一个指向其后继者的引用,而不需保持它所有的候选接受者的引用,这样就降低了耦合度。
链的所在
我在理解这个模式时,觉得它之所以叫做职责链,最关键的是“链”这个字眼。从结构上来看,看下面的类图,没有什么特殊,一个个Handler类,几个concreteHandler来继承,并实现其功能。那么这个链体现在哪了呢?
在Handler类中的SetSuccessor方法。这个方法是用来设定后继者的。就是通过这个方法,一个个对象被连在一起。
客户发出一个请求,我们只需要给出处理请求链的开始端口,首个对象调用自己的HandRequest方法,解决了就结束请求,解决不了的请求,通过设定后继者后传,直到请求被解决。请求就这样被传递了,这些都是自动发生的。
有个比喻不知道恰当不?老师不知道拿错了谁的书,随便找了这个班一个人,把书给他负责把书还给书主人,这个同学,到班里,把书按座位传递,传到书主人那,就停止传递。按座位传递就是我们设定的职责链,每个同学就是一个个对象,书主人是最终处理请求的人。
二、类图
问题:从ConcreteHandler到Handler为什么是聚合关系?
- 职责模式——行为设计模式之四
- 设计模式14——行为型模式之职责链模式
- 设计模式之对象行为型模式 — CHAIN OF RESPONSIBILITY (职责链)模式
- 设计模式学习(四) — 行为模式
- java设计模式——行为型之职责链模式
- 设计模式-行为-职责链
- java设计模式(行为型)之职责链模式
- 【设计模式】行为模式之Chain of Responsibility职责链
- 职责链——对象行为模式
- 行为型模式之职责链模式
- 设计模式(四):行为型模式之命令模式
- 设计模式——行为性——职责链模式
- 设计模式—行为模式
- C#设计模式之14——职责链模式
- 【JavaScript设计模式】行为型设计模式--职责链模式
- 设计模式---行为类型---职责链
- 设计模式(三):行为型模式之职责链模式
- 行为型模式之四——中介者模式
- 解决android有的手机拍照后上传图片被旋转的问题 .
- PHP 5.3.x 的 strtotime() 时区设定 警告信息修复
- 硬盘空间不够用了,怎么办,还有更绝的
- IOS 笔试题
- 网格计算与虚拟机研究需要多元化的计算平台
- 职责模式——行为设计模式之四
- 去除eclipse中xml文件的 No grammar constraints (DTD or XML schema) detected for the document警告
- servlet中 redirect ,forward区别
- CObArray的介绍
- UIActionSheet下半部分区域失效,上半部分区域有效
- CSS3选择器
- SSL证书与Https应用部署小结
- ExpandableListAdapter
- Github for Windows使用图文教程