Strategy Pattern
定義算法族,分別封裝,讓彼此之間能互相替換,使算法變化獨立。
Example: 收銀機
策略模式只會將類別分為一類,即 算法族類別 (Algorithm) 。
同一算法族類別會實作相同介面,便於替換。
優點:
將物件本身的職責與算法的職責分離。
新增/修改算法時,不會影響既有程式碼。
具體算法組合交給客戶端,能在執行時才被決定。
缺點:
會做出許多小類別。
與其他模式的比較:
[簡單工廠模式]:
在簡單工廠模式中,各個物件都已定義好其中的方法,
而策略模式的精神則是執行時組合不同的演算法。
當需要在不同時間應用不同的業務規則時,很可能就是使用策略模式的時機。
ʕ •ᴥ•ʔ:將職責切分至算法族的層級,就是策略模式。