Strategy(策略)
中心思想:
????? 把變化的部分和不變的部分隔離開來。用接口來“抽取”
出來。
實現:
實際整個Strategy的核心部分就是抽象類的使用,【可以用接口,】(用抽象類聲明對象變量引用不同的子類對象)使用Strategy模式可以在用戶需要變化時,修改量很少,而且快速.
Strategy
適合下列場合:
1.
以不同的格式保存文件;
2.
以不同的算法壓縮文件;
3.
以不同的算法截獲圖象;
4.
以不同的格式輸出同樣數據的圖形,比如曲線 或框圖bar等
具體操作步驟:
???
這里以字符串替代為例, 有一個文件,我們需要讀取后,希望替代其中相應的變量,然后輸出.關于替代其中變量的方法可能有多種方法,這取決于用戶的要求,所以我們要準備幾套變量字符替代方案.
1,我們建立一個抽象類RepTempRule定義一些公用變量和方法:



?2

?3

?4



?5

?6

?7

?8

?9



10

11

12

13

14

15

在RepTempRule中有一個抽象方法abstract需要繼承明確,這個replace()里其實是替代的具體方法.
2,兩種方案的實現類,實現抽象方法replace()?
public class RepTempRuleTwo extends RepTempRule
public class RepTempRuleOne extends RepTempRule
3,我們要建立一個算法解決類,用來提供客戶端可以自由選擇算法。
?



?2

?3

?4

?5



?6

?7

?8

?9

10

11



12

13

14

15



16

17

18

19

?
4,程序中使用。可以方便的切換實現方案。
??? //
使用第一套替代方案
RepTempRuleSolve solver=new RepTempRuleSolve(new RepTempRuleOne ());
solver.getNewContext(site,context);
//使用第二套
solver=new RepTempRuleSolve(new RepTempRuleTwo());
solver.getNewContext(site,context);
?
posted on 2009-04-11 01:35 luofeng225 閱讀(203) 評論(0) 編輯 收藏 所屬分類: 設計模式