iT邦幫忙

第 12 屆 iThome 鐵人賽

1
Software Development

你終究都要學設計模式的,那為什麼不一開始就學呢?系列 第 51

Day51. 職責鏈模式

本文同步更新於blog

Chain Of Responsibility Pattern

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

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

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


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


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

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


與其他模式的比較:

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

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


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


上一篇
Day50. 範例:十二生肖
下一篇
Day52. 範例:新產品開發(職責鏈模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言