原创

4.11 《硬啃设计模式》 第28章 邮件自动处理系统?- 责任链模式(Chain of Responsibility Pattern)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://fireball.blog.csdn.net/article/details/16982777
公司的对外邮箱,每天都收到大量的邮件,于是一个伟大的任务就落到你头上了。
你需要清理掉垃圾邮件,应聘的邮件发给招聘部门,客户邮件发给服务部门……
这些邮件分发规则很可能会增加。

于是你写下了类似这样的代码:

责任链1.png 

每一种情况就是一种规则,如何才能“包装”好这些规则,使之容易组合和扩展呢?
责任链模式精要之处就是将所有规则抽象成责任,通过责任链来组合规则并且可以实现扩展。

应用了责任链模式的设计如下:

责任链2.png 

说明:
1.每个Handler只做自己判断,如果能自己处理,就自己处理,否则交给下一个Handler处理。
2.如果增加新规则,则增加新的Handler便可。

责任链模式类图

责任链3.png 

要根据不同的情况处理请求时,可考虑责任链模式。
责任链模式将请求发送者与请求处理者分离,并且可以安排多个请求者处理请求。

各Handler的关系如下:

责任链4.png 
下载 (18.58 KB)
2009-10-28 11:19


说明:
1.Client构造合适的Handler结构。

2.Client将请求传递给合适的第一个Handler。


请看下一文……

 

 

作者:张传波

创新工场创业课堂(敏捷课程)讲师

软件研发管理资深顾问

CMMI首席专家

《火球——UML大战需求分析》作者

www.umlonline.org创办人


文章最后发布于: 2013-11-27 11:52:47
展开阅读全文
0 个人打赏

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览