iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
1
Software Development

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

Day14. 命令模式

本文同步更新於blog

Command Pattern

將請求封裝成對象,以便使用不同的請求來進行參數化。

命令模式也支持隊列、日誌及可撤銷的操作。


命令模式會將類別分成三類:
分別是調用者 (Invoker)接收者 (Receiver)命令 (Command)


優點
容易滿足開放封閉原則(需要時新增命令即可)。
若有需要,可將命令記錄至日誌中,便於重做 (redo) 及撤消 (undo)。
允許接收者決定是否否決請求。

缺點
會做出許多小類別。


與其他模式的比較:

[策略模式]:
以四則運算來比喻的話,策略模式像是算法族中,有加減乘除四種算法;
而命令模式則像是一段計算過程:加三、減五、乘二。
每個運算都是一道命令。


ʕ •ᴥ•ʔ:透過將命令切分成類別,
解耦了**調用者(命令請求者)接收者(命令執行者)**的依賴關係。


上一篇
Day13. 範例:漢堡點餐系統(裝飾者模式)
下一篇
Day15. 範例:機器人廚師(命令模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言