策略模式(Strategy)

2021-08-21 17:02:01 字數 1061 閱讀 2814

它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。

strategy類,定義所有支援的演算法的公共介面

//抽象演算法類

abstract class strategy

concretestrategy。封裝了具體的演算法或行為,繼承於strategy

//具體演算法a

public

class

concretestrategya

extends

strategy

}//具體演算法b

public

class

concretestrategyb

extends

strategy

}//具體演算法c

public

class

concretestrategyc

extends

strategy

}

context,用乙個contextstrategy來配置,維護乙個對strategy的引用

//上下文

public

class context

//上下文介面

public

void

contextinte***ce()}}

策略模式是一種定義一系列演算法的方法,從概念上來看,所有這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方法呼叫所有的演算法,減少了各種演算法類與使用演算法類之間的耦合。

策略模式的strategy類層次為context定義了一系列的可供重用的演算法或行為。繼承有助於析取出這些演算法中的公共功能。

簡化了單元測試,每個演算法都有自己的類,可以通過自己的介面單獨測試。策略模式封裝了變化。

策略 Strategy 模式

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

策略模式 Strategy

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

策略模式 Strategy

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