责任链模式——HeadFirst设计模式学习笔记

责任链模式:使一个以上的对象都有机会能够处理某个请求

 

特点:

  • 链中的每个对象包含它下一个对象的引用和对事件的处理方法。请求在这个链上传递,直到链上的某一个对象决定处理此请求
  • 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,将请求的发送者与接收者解耦
  • 可以动态的改变处理对象成员的顺序,可以动态的增加减少处理对象

 

用途:

  • 多用于窗口系统中,处理鼠标键盘之类的事件

 

缺点:

  • 不能保证请求一定执行
  • 不易观察运行时特征,有碍于排错

 

举例:

不同类型的邮件有不同的处理方式,客户将邮件传给第一个处理者,处理者决定1.处理该邮件;2.通过继承至相同基类的引用传给下一个处理者

 

posted @ 2016-11-03 23:35  HectorHou  阅读(342)  评论(0编辑  收藏  举报