91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

泰和县| 渑池县| 岐山县| 盱眙县| 新津县| 当阳市| 巴彦淖尔市| 花莲县| 拉孜县| 潮州市| 北票市| 渭源县| 阿拉善盟| 静海县| 花莲市| 常熟市| 龙陵县| 互助| 洛浦县| 徐汇区| 卢氏县| 巴塘县| 泾源县| 丰城市| 秭归县| 东乡县| 德阳市| 攀枝花市| 法库县| 岳池县| 宁明县| 宝兴县| 鲁山县| 紫金县| 封丘县| 博野县| 嘉定区| 宜川县| 镇平县| 阿瓦提县| 科技|