策略模式 Strategy

2021-06-28 08:46:18 字數 841 閱讀 7412

定義:定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。

型別:行為類模式

結構圖:

}策略模式的優缺點

策略模式的主要優點有:

策略模式的缺點主要有兩個:

必須對客戶端(呼叫者)暴露所有的策略類,因為使用哪種策略是由客戶端來決定的,因此,客戶端應該知道有什麼策略,並且了解各種策略之間的區別,否則,後果很嚴重。例如,有乙個排序演算法的策略模式,提供了快速排序、氣泡排序、選擇排序這三種演算法,客戶端在使用這些演算法之前,是不是先要明白這三種演算法的適用情況?再比如,客戶端要使用乙個容器,有鍊錶實現的,也有陣列實現的,客戶端是不是也要明白鍊錶和陣列有什麼區別?就這一點來說是有悖於迪公尺特法則的。

適用場景

一般來說,策略模式不會單獨使用,跟模版方法模式、工廠模式等混合使用的情況比較多。

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