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

溫馨提示×

溫馨提示×

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

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

Java設計模式之策略模式是什么及怎么實現

發布時間:2022-08-29 17:27:02 來源:億速云 閱讀:103 作者:iii 欄目:開發技術

這篇文章主要介紹了Java設計模式之策略模式是什么及怎么實現的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java設計模式之策略模式是什么及怎么實現文章都會有所收獲,下面我們一起來看看吧。

1.什么是策略模式

定義一系列算法,把它們一個個封裝起來,并且使他們可以相互替換。

通俗的講,實現同一個功能,有多種方法或策略。可以把這些方法或策略提取并封裝起來。需要使用哪種方法,傳對應的對象進來就行。

2.如何實現

1)定義一個策略接口,該接口定義若干抽象方法。

2)具體策略,實現策略接口,并實現接口中定義的方法。

3)封裝調用類,持有策略接口的引用。當用戶需要完成某項功能時,只需向這個類傳入相應的策略對象,并調用方法即可。

3.代碼實現

以文件的加密解密為例做說明。

1)策略接口,定義策略名

/**
 * 策略接口
 */
public interface EncodeStrategy {
    /**
     * 加密算法
     * @param file
     */
    public abstract void encryptFile(File file);
    /**
     * 解密算法
     * @param file
     * @return
     */
    public abstract String decryptFile(File file);
}

2)具體策略類1

/**
 * 具體策略
 */
public class AESEncode implements EncodeStrategy {
    @Override
    public void encryptFile(File file) {
        //省略具體細節
    }
    @Override
    public String decryptFile(File file) {
        //省略具體細節
        return null;
    }
}

具體策略類2

public class Base64Encode implements EncodeStrategy {
    @Override
    public void encryptFile(File file) {
        //省略具體細節
    }
    @Override
    public String decryptFile(File file) {
        //省略具體細節
        return null;
    }
}

3)封裝調用類

/**
 * 封裝調用類,需要用到具體策略,只需傳入其對象即可
 */
public class FileEncode{
    /**
     * 策略接口的引用
     */
    EncodeStrategy strategy;
    public FileEncode(EncodeStrategy strategy){
        this.strategy = strategy;
    }
    //根據傳入的具體策略對象,調用其方法
    public void encryptFile(File file) {
        strategy.encryptFile(file);
    }
    //根據傳入的具體策略對象,調用其方法
    public String decryptFile(File file) {
        return strategy.decryptFile(file);
    }
}

4)測試代碼

public class TestStrategy {
    public static void main(String args []){
        File file = new File("d:\test.txt");
        //調用策略1 實現加密
        FileEncode fileEncode = new FileEncode(new AESEncode());
        fileEncode.encryptFile(file);
        //調用策略2 實現加密
        fileEncode = new FileEncode(new Base64Encode());
        fileEncode.encryptFile(file);
    }
}

關于“Java設計模式之策略模式是什么及怎么實現”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java設計模式之策略模式是什么及怎么實現”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

霍林郭勒市| 繁峙县| 永福县| 海门市| 康保县| 鄄城县| 巴东县| 乾安县| 偏关县| 德阳市| 东丽区| 八宿县| 建平县| 远安县| 呼和浩特市| 甘洛县| 祁阳县| 娱乐| 虎林市| 丰县| 云林县| 莲花县| 尼木县| 襄汾县| 星座| 体育| 抚远县| 庆安县| 乌鲁木齐县| 龙岩市| 竹北市| 饶阳县| 陇南市| 宁都县| 闸北区| 彩票| 日照市| 祁连县| 宕昌县| 金堂县| 东宁县|