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

策略設計模式

  • 皇家金堡游戲網站注冊
  • 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分钟开奖查询 江苏11选五走势图表 11选5任3口诀 精准三肖默认论坛 南昌股票期货配资 江苏11选5前三组开奖结果 安徽十一选五开奖记录 湖北快三走势图一定牛预测 三分彩官网 七星彩玩法技巧 配资公司配资 上海快三走势图开奖 七乐彩专家杀号高手 诺安股票基金净值 二分时时彩走势图 浙江省11选择5开奖结果 天津十一选五官网