9.24

 

 

实验3:工厂方法模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解工厂方法模式的动机,掌握该模式的结构;

2、能够利用工厂方法模式解决实际问题。

 
   

 


[实验任务一]:加密算法

目前常用的加密算法有DES(Data Encryption Standard)和IDEA(International Data Encryption Algorithm)国际数据加密算法等,请用工厂方法实现加密算法系统。

实验要求:

1.  画出对应的类图;

 

2.提交该系统的代码,该系统务必是一个可以能够直接使用的系统,查阅资料完成相应加密算法的实现;

// 加密算法接口

interface EncryptionAlgorithm {

    void encrypt(String data);

}

 

// DES加密算法实现

class DES implements EncryptionAlgorithm {

    @Override

    public void encrypt(String data) {

        System.out.println("Encrypting data with DES: " + data);

        // 这里只是模拟,实际的DES加密更复杂

    }

}

 

// IDEA加密算法实现

class IDEA implements EncryptionAlgorithm {

    @Override

    public void encrypt(String data) {

        System.out.println("Encrypting data with IDEA: " + data);

        // 这里只是模拟,实际的IDEA加密更复杂

    }

}

 

// 加密算法工厂抽象类

abstract class EncryptionAlgorithmFactory {

    public abstract EncryptionAlgorithm createEncryptionAlgorithm();

}

 

// DES加密算法工厂实现

class DESFactory extends EncryptionAlgorithmFactory {

    @Override

    public EncryptionAlgorithm createEncryptionAlgorithm() {

        return new DES();

    }

}

 

// IDEA加密算法工厂实现

class IDEAFactory extends EncryptionAlgorithmFactory {

    @Override

    public EncryptionAlgorithm createEncryptionAlgorithm() {

        return new IDEA();

    }

}

 

// 测试类

public class Main {

    public static void main(String[] args) {

        EncryptionAlgorithmFactory desFactory = new DESFactory();

        EncryptionAlgorithm desEncryption = desFactory.createEncryptionAlgorithm();

        desEncryption.encrypt("Hello, World!");

 

        EncryptionAlgorithmFactory ideaFactory = new IDEAFactory();

        EncryptionAlgorithm ideaEncryption = ideaFactory.createEncryptionAlgorithm();

        ideaEncryption.encrypt("Hello, World!");

    }

}

3.注意编程规范。

posted @ 2025-01-02 15:24  jais  阅读(20)  评论(0)    收藏  举报