定義:定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。
型別:行為類模式
結構圖:
}策略模式的優缺點
策略模式的主要優點有:
策略模式的缺點主要有兩個:
必須對客戶端(呼叫者)暴露所有的策略類,因為使用哪種策略是由客戶端來決定的,因此,客戶端應該知道有什麼策略,並且了解各種策略之間的區別,否則,後果很嚴重。例如,有乙個排序演算法的策略模式,提供了快速排序、氣泡排序、選擇排序這三種演算法,客戶端在使用這些演算法之前,是不是先要明白這三種演算法的適用情況?再比如,客戶端要使用乙個容器,有鍊錶實現的,也有陣列實現的,客戶端是不是也要明白鍊錶和陣列有什麼區別?就這一點來說是有悖於迪公尺特法則的。
適用場景
一般來說,策略模式不會單獨使用,跟模版方法模式、工廠模式等混合使用的情況比較多。
策略 Strategy 模式
strategy 模式也叫策略模式,是由 gof提出的 23種軟體設計模式的一種。strategy 模式是行為模式之一,它對一系列的演算法加以封裝,為所有演算法定義乙個抽象的演算法介面,並通過繼承該抽象演算法介面對所有的演算法加以封裝和實現,具體的演算法選擇交由客戶端決定 策略 strategy 模...
策略模式 Strategy
public context string strategytype df對策略模式的定義是這樣的 它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化不會影響到使用演算法的客戶 main函式 abstract class strategy class concretest...
策略模式Strategy
1 定義乙個抽象的類abstract class 類名 然後裡面定義乙個抽象策略 abstract void 方法名 例如 public abstract class strategy 2 寫子類繼承父類,實現各自的演算法,例如 public class concretestrategya exte...