策略模式

Strategy Pattern

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

Example: 收銀機


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

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


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

缺點:
會做出許多小類別。


與其他模式的比較:

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


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

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

Share