軟體構造 Strategy模式的運用

2021-10-08 01:34:18 字數 828 閱讀 3237

例如:我要出差去北京,我可以選擇飛機,高鐵,或者客車。環境角色,指的就是「出差」這件事,它包含著對「交通工具」的引用;抽象策略角色,就是呼叫交通工具出發的動作;具體策略,就是交通工具。

具體實現:

//環境角色

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...