設計模式(Design Pattern) – Strategy(策略模式)

目的

定義一整族演算法,將每一個演算法封裝起來,可互換使用,更可在不影響外界的情況下個別抽換所引用的演算法。


別名

policy


結構

參與者

  • Strategy – 演算法的共同介面
  • ConcreteStrategy – 根據介面實作出的演算法
  • Context – 指向一個實體 strategy 物件使用

 


假設網站有個紀錄錯誤訊息的功能,根據客戶的不同,可能可以選擇儲存至純文字檔、資料庫或事件日誌

所以你會建立一個 ILog 做為 Interface,裡面有一個 Save(string message) 的方法

各別建立  LogTxt、LogDb、LogInfo

此時就可以把 switch 拿掉

建立一個 Logger ,呼叫 ILog 實現功能

 

 

print

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *