最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

輕松掌握Java策略模式

 更新時間:2016年09月29日 11:26:53   作者:斷了聯(lián)系  
這篇文章主要幫助大家輕松掌握Java策略模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

定義:一個類的行為或其算法可以在運行時更改。在策略模式中,我們創(chuàng)建表示各種策略的對象和一個行為隨著策略對象改變而改變的 context 對象。策略對象改變 context 對象的執(zhí)行算法。

特點:

    1、算法可以自由切換。

    2、避免使用多重條件判斷。

    3、擴展性良好。

企業(yè)級開發(fā)和常用框架中的應用:java.servlet.http.HttpServlet的service方法

實例:對兩個數的操作行為。

public class Demo {

 public static void main(String[] args) {
 Strategy strategy1 = new StrategyAdd();
 Strategy strategy2 = new StrategyDiv();
 Context context1 = new Context(strategy1);
 context1.execute(10, 5);
 context1 = new Context(strategy2);
 context1.execute(10, 5);
 }
}

interface Strategy{
 public void doOperation(int num1,int num2);
}

class StrategyAdd implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println("執(zhí)行加法");
 System.out.println(num1+"+"+num2+"="+(num1+num2));
 }
 
}

class StrategySub implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println("執(zhí)行減法");
 System.out.println(num1+"-"+num2+"="+(num1-num2));
 }
 
}

class StrategyMul implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println("執(zhí)行乘法");
 System.out.println(num1+"*"+num2+"="+(num1*num2));
 }
 
}

class StrategyDiv implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println("執(zhí)行除法");
 System.out.println(num1+"/"+num2+"="+(num1/num2));
 }
 
}

class Context{
 private Strategy strategy;
 
 public Context(Strategy strategy) {
 this.strategy = strategy;
 }
 
 public void execute(int num1,int num2){
 strategy.doOperation(num1, num2);
 }
}

策略模式強調的是運行時更改,可能在上面的代碼中,這種運行時更改沒有得到很好的體現,我們可以假設一個實際場景,就是當一個對象參數傳到一個方法中來的時候,假設我們要根據參數的不同選擇不同的方法,我們這是會考慮if-else來進行判斷,而策略模式則是對這些if-else進行分類,每一個判斷一個類,然后對象過來了,直接調用策略接口方法,而對象參數屬于哪個具體類則是有jvm來判斷,我們不必要去了解對象參數屬性類型什么的,這樣不僅簡化了我們的開發(fā)工作,而且相比較于if-else,這樣有更好的擴展性。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

遂平县| 淳安县| 文山县| 渝中区| 武山县| 白银市| 崇文区| 夏河县| 迭部县| 荆州市| 平和县| 呼伦贝尔市| 和田市| 晴隆县| 子长县| 陆丰市| 萍乡市| 长春市| 遂宁市| 霍山县| 雅江县| 武城县| 贺兰县| 清新县| 高阳县| 凤凰县| 板桥市| 株洲市| 灵台县| 出国| 高唐县| 南投县| 兰西县| 防城港市| 商都县| 泰安市| 临湘市| 南召县| 介休市| 诸暨市| 阳原县|