設計模式之Strategy 策略

2021-08-24 21:12:13 字數 2086 閱讀 2177

strategy 是屬於設計模式中 物件行為型模式 , 主要是定義一系列的演演算法 , 把這些演演算法乙個個封裝成單獨的類別。

stratrgy 應用比較廣泛 , 比如 , 公司經營業務變化圖 , 可能有兩種實現方式 , 乙個是線條曲線 , 乙個是框圖 (bar), 這是兩種演演算法 , 可以使用 strategy 實現。

這裡以字串替代為例 , 有乙個檔案 , 我們需要讀取後 , 希望替代其中相應的變數 , 然後輸出。關於替代其中變數的方法可能有多種方法 , 這取決於使用者的要求 , 所以我們要準備幾套變數字元替代方案。

首先 , 我們建立乙個抽象類別 reptemprule 定義一些公用變數和方法 :

public abstract class reptemprule

protected string newstring="";

public string getnewstring()

public abstract void replace() throws exception;}

在 reptemprule 中 有乙個抽象方法 abstract 需要繼承明確 , 這個 replace 裡其實是替代的具體方法。

我們現在有兩個字元替代方案

,1. 將文字中 aaa 替代成

bbb;

2. 將文字中 aaa 替代成

ccc;

對應的類別分別是 reptempruleone reptempruletwo

public class reptempruleone extends reptemprule}

public class reptempruletwo extends reptemprule}

至此我們完成了類別圖的設計和程式編制。呼叫如下 :

public class test

..... }

實際整個 strategy 的核心部分就是抽象類別的使用 , 使用 strategy 模式可以在使用者需要變化時 , 修改量很少 , 而且快速。

strategy 和 factory 有一定的類似 ,strategy 相對簡單容易理解。

strategy 適合下列場合 :

1. 以不同的格式儲存檔案 ;

2. 以不同的演演算法壓縮檔案 ;

3. 以不同的演演算法截獲影象 ;

4. 以不同的格式輸出同樣資料的圖形 , 比如曲線 或框圖 bar 等

首先 , 我們建立乙個抽象類別 reptemprule 定義一些公用變數和方法 :

public abstract class reptemprule

protected string newstring="";

public string getnewstring()

public abstract void replace() throws exception;}

在 reptemprule 中 有乙個抽象方法 abstract 需要繼承明確 , 這個 replace 裡其實是替代的具體方法。

我們現在有兩個字元替代方案 ,

1. 將文字中 aaa 替代成 bbb;

2. 將文字中 aaa 替代成 ccc;

對應的類別分別是 reptempruleone reptempruletwo

public class reptempruleone extends reptemprule}

public class reptempruletwo extends reptemprule}

至此我們完成了類別圖的設計和程式編制。呼叫如下 :

public class test

..... }

實際整個 strategy 的核心部分就是抽象類別的使用 , 使用 strategy 模式可以在使用者需要變化時 , 修改量很少 , 而且快速。

strategy 和 factory 有一定的類似 ,strategy 相對簡單容易理解。

strategy 適合下列場合 :

1. 以不同的格式儲存檔案 ;

2. 以不同的演演算法壓縮檔案 ;

3. 以不同的演演算法截獲影象 ;

4. 以不同的格式輸出同樣資料的圖形 , 比如曲線 或框圖 bar 等

設計模式之Strategy 策略

strategy策略模式是屬於設計模式中 物件行為型模式,主要是定義一系列的演算法,把這些演算法乙個個封裝成單獨的類.stratrgy應用比較廣泛,比如,公司經營業務變化圖,可能有兩種實現方式,乙個是線條曲線,乙個是框圖 bar 這是兩種演算法,可以使用strategy實現.這裡以字串替代為例,有乙...

設計模式之Strategy 策略

strategy策略模式是屬於設計模式中 物件行為型模式,主要是定義一系列的演算法,把這些演算法乙個個封裝成單獨的類.stratrgy應用比較廣泛,比如,公司經營業務變化圖,可能有兩種實現方式,乙個是線條曲線,乙個是框圖 bar 這是兩種演算法,可以使用strategy實現.這裡以字串替代為例,有乙...

設計模式之Strategy 策略

strategy策略模式是屬於設計模式中 物件行為型模式,主要是定義一系列的演算法,把這些演算法乙個個封裝成單獨的類.stratrgy應用比較廣泛,比如,公司經營業務變化圖,可能有兩種實現方式,乙個是線條曲線,乙個是框圖 bar 這是兩種演算法,可以使用strategy實現.這裡以字串替代為例,有乙...