職責鏈模式

Chain Of Responsibility Pattern

使多個物件都有機會處理請求,

從而避免請求的發送者和接受者間的耦合關係。

請求會沿著這條鏈傳遞,直到有一個物件處理它。

Example: 新產品開發


職責鏈模式會將類別分為兩類:
分別是請求類別 (Request)處理器類別 (Handler)


優點
容易調整職責鏈中處理器的順序。
容易新增/修改職責鏈中的處理器。

缺點
需注意是否有請求到鏈的末端仍未被處理。


與其他模式的比較:

[裝飾者模式]:
裝飾者模式中,每個裝飾者類別皆會裝飾被裝飾者類別。
而職責鏈模式中的請求,只會交由一個處理器負責處理。

[組合模式]:
職責鏈模式中的處理器類別,會實現相同的介面,
最後形成類似枝節點類別 (Composite)葉節點類別 (Leaf) 的結構。


ʕ •ᴥ•ʔ:透過類似命令模式的職責切分,
將處理器的職責與鏈的職責解耦,使其易於新增/修改。