亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java策略模式如何實現

發布時間:2022-01-05 11:39:22 來源:億速云 閱讀:119 作者:iii 欄目:大數據

本篇內容介紹了“java策略模式如何實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

 劉備要到江東娶老婆了,走之前諸葛亮給趙云(伴郎)三個錦囊妙計,說是按天機拆開解決棘手問題,

嘿,還別說,真是解決了大問題,搞到最后是周瑜陪了夫人又折兵呀,那咱們先看看這個場景是什么樣子的。

 先說這個場景中的要素:三個妙計,一個錦囊,一個趙云,妙計是小亮同志給的,妙計是放置在錦囊里,俗稱就是錦囊妙計嘛,那趙云就是一個干活的人,從錦囊中取出妙計,執行,然后獲勝,用 JAVA 程序怎么表現這個呢?我們先看類圖:

三個妙計是同一類型的東東,那咱就寫個接口:

package com.cbf4life.strategy;
*首先定一個策略接口,這是諸葛亮老人家給趙云的三個錦囊妙計的接口
**/
public interface IStrategy {
//每個錦囊妙計都是一個可執行的算法
public void operate();
}
然后再寫三個實現類,有三個妙計嘛:
package com.cbf4life.strategy;
/**
*找喬國老幫忙,使孫權不能殺劉備
*/
public class BackDoor implements IStrategy {
    public void operate() {
       System.out.println("找喬國老幫忙,讓吳國太給孫權施加壓力");
    }
}

package com.cbf4life.strategy;
/**
*求吳國太開個綠燈
*/

public class GivenGreenLight implements IStrategy {
     public void operate() {
     System.out.println("求吳國太開個綠燈,放行!");
     }
}

package com.cbf4life.strategy;
/**
*孫夫人斷后,擋住追兵
*/

public class BlockEnemy implements IStrategy {
      public void operate() {
         System.out.println("孫夫人斷后,擋住追兵");
      }
}
好了,大家看看,三個妙計是有了,那需要有個地方放這些妙計呀,放錦囊呀:
package com.cbf4life.strategy;
/**
*計謀有了,那還要有錦囊
*/

public class Context {
//構造函數,你要使用那個妙計
     private IStrategy straegy;
     public Context(IStrategy strategy){
        this.straegy = strategy;
     }

    //使用計謀了,看我出招了
    public void operate(){
        this.straegy.operate();
     }
}

然后就是趙云雄赳赳的揣著三個錦囊,拉著已步入老年行列的、還想著娶純情少女的、色迷迷的劉老爺子去入贅了,嗨,還別說,小亮的三個妙計還真是不錯,瞅瞅:

package com.cbf4life.strategy;
public class ZhaoYun {
/**
*趙云出場了,他根據諸葛亮給他的交代,依次拆開妙計
*/
public static void main(String[] args) {
       Context context;
       //剛剛到吳國的時候拆第
       System.out.println("-----------剛剛到吳國的時候拆第一個-------------");     
       context = new Context(new BackDoor()); //拿到妙計
       context.operate();	//拆開執行
       System.out.println("\n\n\n\n\n\n\n\n");

      //劉備樂不思蜀了,拆第二個了
       System.out.println("-----------劉備樂不思蜀了,拆第二個了-------------");
      context = new Context(new GivenGreenLight()); context.operate();
      //執行了第二個錦囊了
      System.out.println("\n\n\n\n\n\n\n\n");      //孫權的小兵追了,咋辦?拆第三個       System.out.println("-----------孫權的小兵追了,咋辦?拆第三個-------------");       context = new Context(new BlockEnemy());       context.operate(); //孫夫人退兵        System.out.println("\n\n\n\n\n\n\n\n");       /*        *問題來了:趙云實際不知道是那個策略呀,他只知道拆第一個錦囊,         *而不知道是BackDoor這個妙計,咋辦?
        似乎這個策略模式已經把計謀名稱寫出來了       *       *錯!BackDoor、GivenGreenLight、BlockEnemy只是一個代碼,
        你寫成first、second、third,沒人會說你錯!         *策略模式的好處就是:體現了高內聚低耦合的特性呀,缺點嘛,這個那個,我回去再查查         */      } }

“java策略模式如何實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙泉市| 贡山| 江油市| 克拉玛依市| 新郑市| 临猗县| 富宁县| 收藏| 新津县| 北川| 临江市| 佛山市| 阳原县| 即墨市| 辰溪县| 重庆市| 万全县| 谢通门县| 沽源县| 朔州市| 建昌县| 万安县| 平阴县| 鱼台县| 涡阳县| 临猗县| 南涧| 珠海市| 涞源县| 赣榆县| 静海县| 南皮县| 盐津县| 靖远县| 文山县| 柳林县| 横山县| 新郑市| 吐鲁番市| 米易县| 册亨县|