Rumah > Java > javaTutorial > teks badan

Corak Reka Bentuk Java: Penjelasan terperinci tentang corak strategi dan kaedah pelaksanaan

WBOY
Lepaskan: 2023-04-24 22:55:06
ke hadapan
1366 orang telah melayarinya

1. Apakah itu Corak Strategi

Tentukan satu siri algoritma, rangkumkannya satu demi satu, dan jadikan ia boleh ditukar ganti.

Dalam istilah orang awam, terdapat pelbagai kaedah atau strategi untuk mencapai fungsi yang sama. Kaedah atau strategi ini boleh diekstrak dan dikapsulkan. Mana-mana kaedah yang perlu digunakan, hanya masukkan objek yang sepadan.

2. Cara melaksanakan

1) Tentukan antara muka strategi yang mentakrifkan beberapa kaedah abstrak.

2) Strategi khusus, laksanakan antara muka strategi dan laksanakan kaedah yang ditakrifkan dalam antara muka.

3) Lengkapkan kelas panggilan dan simpan rujukan kepada antara muka strategi. Apabila pengguna perlu melengkapkan fungsi tertentu, dia hanya perlu menghantar objek strategi yang sepadan ke kelas ini dan memanggil kaedah tersebut.

3. Pelaksanaan kod

Ambil penyulitan dan penyahsulitan fail sebagai contoh.

1) Antara muka strategi, tentukan nama strategi

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

2) Kelas strategi khusus 1

/**
 * 具体策略
 */
public class AESEncode implements EncodeStrategy {
    @Override
    public void encryptFile(File file) {
        //省略具体细节
    }
    @Override
    public String decryptFile(File file) {
        //省略具体细节
        return null;
    }
}
Salin selepas log masuk

Kelas strategi khusus 2

public class Base64Encode implements EncodeStrategy {
    @Override
    public void encryptFile(File file) {
        //省略具体细节
    }
    @Override
    public String decryptFile(File file) {
        //省略具体细节
        return null;
    }
}
Salin selepas log masuk

3) Kelas panggilan enkapsulasi

/**
 * 封装调用类,需要用到具体策略,只需传入其对象即可
 */
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);
    }
}
Salin selepas log masuk

4) Kod ujian

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);
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Corak Reka Bentuk Java: Penjelasan terperinci tentang corak strategi dan kaedah pelaksanaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan