策略模式 跟我之前 寫狀態模式 結構有點像
只是在於 他不是跟狀態模式有流程的步驟 一步步下去的
他應用在使用者知道 要用那個決策物件處理問題
一步步執行下去
這些模式有一個共通點都會有一個 內容(Context) 物件 , 然後包含算法(Strategy)物件
物件會有不同算法去執行他的邏輯
策略模式的功能是把實際的演算法從業務處理獨立出來,把他們實現單獨算法類別, 形成一系列的物件
策略模式有以上三種可以實現的方式
但是由於 策略物件都是實現同一個策略介面 , 傳入同一個 Context , 可能會造成 Context 的
浪費 , 因為不是全部的演算法物件 , 都會使用這些資料 , 但是 Context 之間的消耗 是存在的
策略模式還可以結合 , 範本模式
有時我們實現一連串的策略演算法時 , 發現有一些要寫的程式 , 其實都有一些相同的地方時
可以把相同的點寫在抽像類別 , 然後 把不同的地方寫在介面 , 來實做這個抽像類別的介面

沒有留言:
張貼留言