目的
定義一整族演算法,將每一個演算法封裝起來,可互換使用,更可在不影響外界的情況下個別抽換所引用的演算法。
別名
policy
結構
參與者
- Strategy – 演算法的共同介面
- ConcreteStrategy – 根據介面實作出的演算法
- Context – 指向一個實體 strategy 物件使用
假設網站有個紀錄錯誤訊息的功能,根據客戶的不同,可能可以選擇儲存至純文字檔、資料庫或事件日誌
所以你會建立一個 ILog 做為 Interface,裡面有一個 Save(string message) 的方法
各別建立 LogTxt、LogDb、LogInfo
此時就可以把 switch 拿掉
建立一個 Logger ,呼叫 ILog 實現功能