設計模式之Strategy 策略

2021-08-29 03:08:01 字數 1999 閱讀 7154

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實現.這裡以字串替代為例,有乙...