設計模式學習筆記 策略模式(Strategy)

2022-03-11 05:11:43 字數 715 閱讀 6148

1.特點:將一系列演算法逐個封裝並可相互替換,易於切換、理解、擴充套件。

優點:1)提供了管理相關演算法族的方法。

2)可以避免使用多重條件轉移語句。

缺點:1)必須知道所有的具體策略類及它們的區別.

2)生成許多的策略類。

2.概念:

3.類圖:

4.實現**:

/// /// 策略類,定義了所有支援的演算法的公共介面

///

public abstract class stratege

/// /// 具體策略 a,實現了一種具體演算法

///

public class concretestrategea : stratege

}/// /// 具體策略 b,實現了一種具體演算法

///

public class concretestrategeb : stratege

}/// /// context 上下文,維護乙個對stratege物件的引用

///

public class context

/// /// 根據具體策略物件,呼叫其演算法

///

public void executealgorithm()

}

設計模式學習筆記 策略模式

我覺得策略模式與工廠方法模式極其相似!策略模式 工廠方法模式 如果單從圖來看,看不出有何相似之處。但看看呼叫方法就知道了 策略模式 context context new context abstractstrategy strategy 採用哪種策略,由呼叫方決定 strategy new con...

設計模式學習筆記 策略模式

問題 商場收銀軟體,根據單價和數量,得到總價。設計思路 兩個輸入框,分別代表單價和數量,乙個下拉框,選項有 正常,打折,滿減等演算法 商場有時需要正常收費,有時打折扣,有時滿300送100.下面是簡單工廠模式下 所有演算法的父類抽象類cashsuper public abstract class c...

設計模式學習筆記 策略模式

考慮這樣乙個場景。我們要計算兩個數的值,但是演算法不確定,可以是加減乘除的任意一種,甚至可以是加減乘除任意組合計算。就實現方式來說可以有多種。比如我可以通過if else 繼續演算法控制 class context public function calculate flag else if fla...