实验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.注意编程规范。