设计模式之职责链模式
2015-12-21 09:49
197 查看
定义:
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
角色:
抽象处理者:定义一个处理请示的接口。
具体处理者:处理它所负责的请求,可访问它的后继者,如果可以处理请求,就处理;否则,将该请求转发给它的后继者。
UML图:
总结:
职责链模式使得接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可以简化对象的相互连接,他们仅需要保持一个指向后继者的引用,而不需保持它所有的候选接受者的引用。但是要注意,一个请求到了链的末端,必须得到处理。
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
角色:
抽象处理者:定义一个处理请示的接口。
具体处理者:处理它所负责的请求,可访问它的后继者,如果可以处理请求,就处理;否则,将该请求转发给它的后继者。
UML图:
总结:
职责链模式使得接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可以简化对象的相互连接,他们仅需要保持一个指向后继者的引用,而不需保持它所有的候选接受者的引用。但是要注意,一个请求到了链的末端,必须得到处理。
相关文章推荐
- HTML5新增标签的汇总与详解
- Llinux操作系统常用命令
- HTML5 sqllite数据库操作工具函数
- Phalcon 获取HTTP数据信息
- android中sharedPreferences的用法
- 用户界面框架jQuery EasyUI示例大全之Panel
- Ecplise Gvim 好用的简单配置
- mac下编译google buffer3.0
- Data URI 应用场景小结
- 祸福无门,惟人自召。善恶之报,如影随行。
- iOS开发系列—Objective-C之Foundation框架
- 15个实用的Linux find命令示例
- Meta http-equiv属性详解(转)
- OC语言-01类和对象
- 开始拖动(dragstart事件)
- 求最大公约数
- MapReduce-自定义Key-二次排序
- Android 悬浮窗
- 【Code-First系列】 使用Fluent API进行实体映射
- 系统登陆界面开发及实现之(三)界面标题组件设置