例如:我要出差去北京,我可以選擇飛機,高鐵,或者客車。環境角色,指的就是「出差」這件事,它包含著對「交通工具」的引用;抽象策略角色,就是呼叫交通工具出發的動作;具體策略,就是交通工具。
具體實現:
//環境角色
public
class
context
/** * 策略方法
*/public
void
contextinte***ce()
}//抽象策略角色
public
inte***ce
strategy
//具體策略類
public
class
concretestrategya
implements
strategy
}public
class
concretestrategyb
implements
strategy
}public
class
concretestrategyc
implements
strategy
}//客戶端
//選擇使用的策略
strategy s =
newconcretestrategya()
;context context =
newcontext
(s);
context.
ontextinte***ce
();
策略模式的缺點:
策略模式的適用場景:
軟體構造 可復用性 Strategy模式
問題 針對特定任務存在多種演算法,呼叫者需要根據上下文環境動態的選擇和切換。strategy模式 定義乙個演算法的介面,每個演算法用乙個類來實現,客戶端針對介面編寫程式。圖示如下 stategy介面 演算法介面 concretestategya類 具體演算法a concretestategyb類 具...
策略 Strategy 模式
strategy 模式也叫策略模式,是由 gof提出的 23種軟體設計模式的一種。strategy 模式是行為模式之一,它對一系列的演算法加以封裝,為所有演算法定義乙個抽象的演算法介面,並通過繼承該抽象演算法介面對所有的演算法加以封裝和實現,具體的演算法選擇交由客戶端決定 策略 strategy 模...
策略模式 Strategy
public context string strategytype df對策略模式的定義是這樣的 它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化不會影響到使用演算法的客戶 main函式 abstract class strategy class concretest...