2024.10.30

设计模式实验三

软件设计                  石家庄铁道大学信息学院

 

实验3:工厂方法模式

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

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

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

 
   

 

 

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

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

实验要求:

1.  画出对应的类图;

 

 

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

    // Encryptor.java

public interface Encryptor {

    String encrypt(String data);

}

 

// DES.java

public class DES implements Encryptor {

    @Override

    public String encrypt(String data) {

        // 模拟DES加密

        return "DES encrypted: " + new StringBuilder(data).reverse().toString();

    }

}

 

// IDEA.java

public class IDEA implements Encryptor {

    @Override

    public String encrypt(String data) {

        // 模拟IDEA加密

        return "IDEA encrypted: " + data.toUpperCase();

    }

}

 

// EncryptorFactory.java

public interface EncryptorFactory {

    Encryptor createEncryptor();

}

 

// DESFactory.java

public class DESFactory implements EncryptorFactory {

    @Override

    public Encryptor createEncryptor() {

        return new DES();

    }

}

 

// IDEAFactory.java

public class IDEAFactory implements EncryptorFactory {

    @Override

    public Encryptor createEncryptor() {

        return new IDEA();

    }

}

 

// Client.java

public class Client {

    private Encryptor encryptor;

 

    public Client(EncryptorFactory factory) {

        this.encryptor = factory.createEncryptor();

    }

 

    public String encryptData(String data) {

        return encryptor.encrypt(data);

    }

 

    public static void main(String[] args) {

        // 使用DES加密

        EncryptorFactory desFactory = new DESFactory();

        Client client = new Client(desFactory);

        System.out.println(client.encryptData("Hello World"));

 

        // 使用IDEA加密

        EncryptorFactory ideaFactory = new IDEAFactory();

        client = new Client(ideaFactory);

        System.out.println(client.encryptData("Hello World"));

    }

}

3.注意编程规范。

posted @ 2024-12-25 09:55  cvjj  阅读(5)  评论(0)    收藏  举报