1. 程式人生 > >設計模式學習總結(17) 責任鏈模式

設計模式學習總結(17) 責任鏈模式

關鍵程式碼:Handler裡面聚合他自己,在HanleRequest裡判斷是否合適,如果沒達到條件則向下傳遞,向誰傳遞之前set進去
應用例項:1、紅樓夢中的“擊鼓傳花”2、JS中的事件冒泡 3、JAVA WEB中 Apache Tomcat 的對Encoding的 處理,Struts2 的攔截器, jsp servlet 的Filte
優點:1、降低耦合度。它將請求的傳送者和接受者解耦。2、簡化了物件。使得物件不需要知道鏈的結構。 3、增強給物件指派職責的靈活性。通過改變鏈內的成員或者調動它們的次序,允許動態地新增或者刪除責任。 4、增加新的請求處理類很方便。
缺點:1、不能保證請求一定被接收。 2、系統性能將受到一定影響,而且在進行程式碼除錯時不太方便;可能會造成迴圈呼叫。 3、可能不容易觀察執行時的特徵,有礙於除錯。
使用場景
:1、有多個物件可以處理同一個請求,具體哪個物件處理該請求由執行時刻自動確定。 2、在不明確指定接收者的情況下,向多個物件中的一個提交一個請求。  3、可動態指定一組物件處理請求。
注意事項:在JAVA WEB中遇到很多應用