一.什么是責任鏈模式?
責任鏈模式就是為一個請求或者一個動作創建一個接收者對象的鏈,這條鏈上的每一個對象都可以去響應和處理這個請求和動作,把發送者和接收者進行解耦,在這種模式中,通常每個接收者都包含對另一個接收者的引用。如果一個對象不能處理該請求,那么它會把相同的請求傳給下一個接收者,依此類推。
責任鏈模式.png
二.為什么要使用責任鏈模式?
責任鏈模式可以把發送者和接收者進行解耦合,發送方只需把消息發送出去即可,接收者負責對消息進行處理,在工作中,有時候我們可能會遇到這樣的情況, 你出差了或者你加班了, 需要向領導發送郵件,而領導則需要向他的領導發送郵件,這樣一級一級的向上匯報,直到可以給你報銷費用的的領導審批之后,你才能拿到辛苦費,如果你之前和哪位領導干過架,完了,人家不給你上報,那你就慘了
三.怎么使用責任鏈模式?
事件響應.png
上面兩個方法應該很熟悉吧,對,這就是iOS 中UIView對事件處理的響應函數,這個我們就可以看做是責任鏈模式的例子
下面用一個兒子買玩具舉個例子:
1.創建一個基類
基類.png
基類.png
2.兒子
兒子.png
兒子.png
3.爸爸
爸爸.png
爸爸.png
4.媽媽
媽媽.png
媽媽.png
5.具體實現
具體實現.png
具體實現.png
打印.png
菜鳥教程:http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html
腳本之家:http://www.jb51.net/article/81756.htm
其他設計模式
享元模式:http://www.lxweimin.com/p/f9c53b9825e4
工廠模式:http://www.lxweimin.com/p/6f3ffb1397f7
觀察者模式:http://www.lxweimin.com/p/a6a6e5a8e8bd