设计模式实验三
软件设计 石家庄铁道大学信息学院
实验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.注意编程规范。