02 策略模式 Strategy

2022-09-16 13:24:15 字數 2104 閱讀 4181

策略是為達到某一目的而採取的手段或方法,策略模式的本質是目標與手段的分離,

手段不同而最終達成的目標一致。客戶只關心目標而不在意具體的實現方法,

實現方法要根據具體的環境因素而變化。

用我們每天上下班的方式來展開:

我們上下班的交通方式有:

1、步行 

2、騎直行車

3、地鐵 

4、開車 

//1、汽車 2、步行 3、地鐵 23

public

class

walkstrategy:strategy49

}1011public

class

subwaystrategy:strategy

1217}18

19public

class

carstrateg : strategy

2025 }

1

//山下文

2public

class

context39

//上下文介面

10public

void

contextinte***ce()

1114 }

1

//山下文

2public

class

context39

//上下文介面

1、汽車 2、步行 3、地鐵

2627

public

class

walkstrategy : strategy

2833}34

public

class

subwaystrategy : strategy

3540}41

public

class

carstrateg : strategy

4247}48

//山下文

49public

class

context

5066}67

//上下文介面

68public

void

contextinte***ce()

6972

}73 }

策略模式參與者:

strategy 策略:定義所支援的演算法的公共介面。context使用這個介面來呼叫某個strategy子物件定義的演算法。

strategy子物件具體策略:實現strategy介面中的具體演算法。

context 上下文

1、 通過乙個子物件來對其進行配置;

2、 維護乙個對strategy物件的引用;

3、 可定義乙個介面來讓strategy訪問它的資料。

1、上班方式

2、空中飛行的東西

3、旅行的出動方式

4、彩票的出獎

5、超市的優惠方式

策略 Strategy 模式

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

策略模式 Strategy

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

策略模式 Strategy

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