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

公司的对外邮箱,每天都收到大量的邮件,于是一个伟大的任务就落到你头上了。
你需要清理掉垃圾邮件,应聘的邮件发给招聘部门,客户邮件发给服务部门……
这些邮件分发规则很可能会增加。

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

责任链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创办人


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张传波

打赏的朋友很帅噢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值