iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
1
Software Development

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

Day10. 策略模式

本文同步更新於blog

Strategy Pattern

定義算法族,分別封裝,讓彼此之間能互相替換,使算法變化獨立


策略模式只會將類別分為一類,即算法族類別 (Algorithm)

同一算法族類別會實作相同介面,便於替換。


優點:

物件本身的職責算法的職責分離。
新增/修改算法時,不會影響既有程式碼。
具體算法組合交給客戶端,能在執行時才被決定

缺點:

會做出許多小類別。


與其他模式的比較:

[簡單工廠模式]:
在簡單工廠模式中,各個物件都已定義好其中的方法,
而策略模式的精神則是執行時組合不同的演算法


當需要在不同時間應用不同的業務規則時,很可能就是使用策略模式的時機。

ʕ •ᴥ•ʔ:將職責切分至算法族的層級,就是策略模式。


上一篇
Day9. 範例:運輸系統(簡單工廠模式)
下一篇
Day11. 範例:收銀機 (策略模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言