13 策略模式(strategy)

2021-08-13 09:47:23 字數 1999 閱讀 8127

13、策略模式(strategy)

策略模式定義了一系列演算法,並將每個演算法封裝起來,使他們可以相互替換,且演算法的變化不會影響到使用演算法的客戶。需要設計乙個介面,為一系列實現類提供統一的方法,多個實現類實現該介面,設計乙個抽象類(可有可無,屬於輔助類),提供輔助函式,關係圖如下:

圖中icalculator提供同意的方法,

abstractcalculator是輔助類,提供輔助方法,接下來,依次實現下每個類:

首先統一介面:?

12

3

publicinte***ceicalculator

輔助類:?

12

3

4

5

6

7

8

9

10

publicabstractclassabstractcalculator

}

三個實現類:?

12

3

4

5

6

7

8

publicclassplusextendsabstractcalculatorimplementsicalculator

}?1

2

3

4

5

6

7

8

9

publicclassminusextendsabstractcalculatorimplementsicalculator

}?1

2

3

4

5

6

7

8

publicclassmultiplyextendsabstractcalculatorimplementsicalculator

}

簡單的測試類:?

12

3

4

5

6

7

8

9

publicclassstrategytest

}

輸出:10

策略模式的決定權在使用者,系統本身提供不同演算法的實現,新增或者刪除演算法,對各種演算法做封裝。因此,策略模式多用在演算法決策系統中,外部使用者只需要決定用哪個演算法即可。

策略 Strategy 模式

strategy 模式也叫策略模式,是由 gof提出的 23種軟體設計模式的一種。strategy 模式是行為模式之一,它對一系列的演算法加以封裝,為所有演算法定義乙個抽象的演算法介面,並通過繼承該抽象演算法介面對所有的演算法加以封裝和實現,具體的演算法選擇交由客戶端決定 策略 strategy 模...

策略模式 Strategy

public context string strategytype df對策略模式的定義是這樣的 它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化不會影響到使用演算法的客戶 main函式 abstract class strategy class concretest...

策略模式 Strategy

定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 結構圖 策略模式的優缺點 策略模式的主要優點有 策略模式的缺點主要有兩個 必須對客戶端 呼叫者 暴露所有的策略類,因為使用哪種策略是由客戶端來決定的,因此,客戶端應該知道有什麼策略,並且了解各種策略之間的區別,否...