码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之责任链模式

时间:2015-06-06 12:01:08      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

  客户端将消息对象发送给接收者,责任链模式将接收者连成一条链,并在该链上传递该消息对象,直到有对象处理它。通过让更多对象接触到消息请求,避免了发送者和接收者的耦合。

技术分享

  接收者Handler作为一个抽象类,持有自身引用,指向它的后继接收者successor。我们可以通过工厂模式构建这条责任链。

  为了更好的满足开闭原则,往往在业务变更的时候只添加类而不修改原码。如果责任链中出现变动,需要修改工厂方法来满足业务需求。

  在java ee开发中,过滤器就是一个责任链的经典应用,对用户的请求进行处理。在spring security中通过若干filter类构成了责任链处理http请求,提供认证与授权。

  责任链模式可以保证客户端与服务端的松散耦合,但是对链条的遍历过程是消耗时间的,而且在内存中创建了大量接收者对象,仅仅一少部分会使用到。

    需要根据实际应用判断是否使用责任链模式,或者使用其他模式替换。

设计模式之责任链模式

标签:

原文地址:http://www.cnblogs.com/cqumonk/p/4556216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!