一.什么是责任链模式?
责任链模式就是为一个请求或者一个动作创建一个接收者对象的链,这条链上的每一个对象都可以去响应和处理这个请求和动作,把发送者和接收者进行解耦,在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
二.为什么要使用责任链模式?
责任链模式可以把发送者和接收者进行解耦合,发送方只需把消息发送出去即可,接收者负责对消息进行处理,在工作中,有时候我们可能会遇到这样的情况, 你出差了或者你加班了, 需要向领导发送邮件,而领导则需要向他的领导发送邮件,这样一级一级的向上汇报,直到可以给你报销费用的的领导审批之后,你才能拿到辛苦费,如果你之前和哪位领导干过架,完了,人家不给你上报,那你就惨了
三.怎么使用责任链模式?
上面两个方法应该很熟悉吧,对,这就是iOS 中UIView对事件处理的响应函数,这个我们就可以看做是责任链模式的例子
下面用一个儿子买玩具举个例子:
1.创建一个基类
2.儿子
3.爸爸
4.妈妈
5.具体实现
菜鸟教程:http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html
脚本之家:http://www.jb51.net/article/81756.htm
其他设计模式
享元模式:http://www.jianshu.com/p/f9c53b9825e4
工厂模式:http://www.jianshu.com/p/6f3ffb1397f7
观察者模式:http://www.jianshu.com/p/a6a6e5a8e8bd