您現在的位置是:網站首頁> 內容頁

策略設計模式

  • 皇家金堡游戲網站注冊
  • 2019-11-05
  • 408人已閱讀
簡介策略設計模式定義:創建一個能夠根據所傳遞的參數對象的不同而具有不同行為的方法,稱為策略設計模式。策略就是傳遞進去的參數對象,它包含要執行的代碼。策略模式應用場景:1.如果在一個系統里面

策略設計模式定義:創建一個能夠根據所傳遞的參數對象的不同而具有不同行為的方法,稱為策略設計模式。策略就是傳遞進去的參數對象,它包含要執行的代碼。

策略模式應用場景:

1.如果在一個系統里面有許多類,它們之間的區別僅在于它們的行為,那么使用策略模式可以動態地讓一個對象在許多行為中選擇一種行為。

2.一個系統需要動態地在幾種算法中選擇一種。

3.如果一個對象有很多的行為,如果不用恰當的模式,這些行為就只好使用多重的條件選擇語句來實現(即使用?if...else)。

實現:

我們首先創建一個定義活動的?Strategy?接口和實現了?Strategy?接口的實體策略類,Context?是一個使用了某種策略的類。Main,我們的演示類使用?Context?和策略對象來演示 Context 在它所配置或使用的策略改變時的行為變化。

UML類圖:

步驟1:創建定義活動的?Strategy?接口

public interface Strategy { public double algorithm (double numberA,double numberB);}

步驟2:創建實現了?Strategy?接口的實體策略類

algorithmForAdd.java

public class algorithmForAdd implements Strategy {@Overridepublic double algorithm(double numberA,double numberB) {return numberA+numberB;}}

?algorithmForMultiply.java

public class algorithmForMultiply implements Strategy {@Overridepublic double algorithm(double numberA, double numberB) {return numberA * numberB;}}

algorithmForSubtract.java

步驟3:

創建?Context?類

public class context {private Strategy strategy;public context(Strategy strategy) {this.strategy = strategy;}public double Contextinterface(double numberA, double numberB) {return strategy.algorithm(numberA, numberB);}}

步驟4:

創建Main類

public class Main {public static void main(String[] args) {System.out.println("10+20 = "+new context(new algorithmForAdd()).Contextinterface(10, 20));System.out.println("10-20 = "+new context(new algorithmForSubtract()).Contextinterface(10, 20));System.out.println("10*20 = "+new context(new algorithmForMultiply()).Contextinterface(10, 20));}}

運行結果:

?

文章評論

Top 快乐10分钟开奖查询 吉林快三形态 走势图 股票配资门户 股票配资门户 配资炒股流程上上盈靠谱 北京快3玩法新规则 天天娱乐电玩城 江西多乐彩前三直选开奖 福彩排列7开奖结果 股票推荐608667.com 体彩陕西十一选五开 广西快3综合走势图经彩网 北京快三走势图一定牛网一定牛北一 江西体彩多乐彩 排列五计划包码软件 彩票走势图上海11选分布 股票每日推荐网 广西快乐十分有何技巧