設計模式3策略模式

2022-09-21 07:00:11 字數 535 閱讀 7709

一種定義一系列演算法的方法,從概念上來看所有這些演算法完成的都是相同的工作,只是實現不同,它們可以以相同的方式呼叫相同的演算法,減少了各種演算法類和使用演算法類之間的耦合

策略模式的 策略類 為 所有context 定義了一系列的可供重用的演算法和行為.繼承有助於析取出這些演算法中的公共行為

策略模式的優點是簡化了單元測試,因為每個演算法都有自己的類,可以通過自己的介面單獨測試.每個演算法可保證他沒有錯誤,修改其中一種演算法不會影響到其他的演算法

當不同的行為堆砌在乙個類中時就難免使用條件語句來選擇合適的行為,將這些行為封裝在乙個獨立的 策略類中 ,可以在使用這些行為的類中消除條件語句

策略模式就是用來封裝演算法的,但在實踐中 我們可以發現可以用他來封裝幾乎任何型別的規則,只要在分析過程中聽到需要在不同的時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性

在基本的策略模式中,選擇所用具體實現的職責由客戶端物件承擔,並轉給策略模式的context物件

在策略模式與簡單工廠模式結合後選擇具體實現的職責也可以由context來承擔,這最大化的減輕了客戶端的職責

C 設計模式3 (策略模式)

策略模式是將演算法的不同實現封裝到乙個類裡面,將演算法的實現和演算法的使用分離。在演算法發生變化時不會影響演算法的呼叫者。在需要不同演算法時,可以相互替換,而不影響使用者。下面是uml圖 以下是策略基類和子類 ifndef basestrategyinte ce h define basestrat...

GO設計模式3 策略模式

所謂策略其實就是做一件事情有很多很多的方法,比如說乙個商場要搞 的方式有可能有很多 打折啊,滿100返50啊 積分等等之類的。這種不同的 方式在我們系統中表示就是乙個乙個的策略,並且策略是可以隨時更換的,這個時候在設計系統時就可以使用策略模式。type strategy inte ce策略一 typ...

設計模式學習總結 3 策略模式

策略模式 strategy 屬於行為模式 意圖 定義一系列的演算法,把它們乙個個封裝起來,並且使它們可以相互替換。本模式使得演算法可獨立於它的客戶而變化。什麼意思呢,我想的是,演算法獨立於客戶,我們把一些演算法具體實現封裝起來,成為具體的類,而每乙個演算法獨立為一種具體策略,把演算法和環境 cont...