策略是為達到某一目的而採取的手段或方法,策略模式的本質是目標與手段的分離,
手段不同而最終達成的目標一致。客戶只關心目標而不在意具體的實現方法,
實現方法要根據具體的環境因素而變化。
用我們每天上下班的方式來展開:
我們上下班的交通方式有:
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
定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 結構圖 策略模式的優缺點 策略模式的主要優點有 策略模式的缺點主要有兩個 必須對客戶端 呼叫者 暴露所有的策略類,因為使用哪種策略是由客戶端來決定的,因此,客戶端應該知道有什麼策略,並且了解各種策略之間的區別,否...