原型模式(Prototype Pattern)是一种创建型设计模式,它通过复制一个现有对象来创建新的对象,而无需知道对象创建的具体细节。
原型模式包含以下主要角色:
1. 抽象原型类(Prototype):声明一个克隆自身的接口。
2. 具体原型类(ConcretePrototype):实现克隆自身的操作。
原型模式的优点包括:
1. 性能优化:对于创建复杂对象或创建过程耗时的对象,通过复制原型对象可以提高创建新对象的效率。
2. 避免子类化的复杂性:有时创建对象的过程比较复杂,使用原型模式可以避免通过子类化来创建对象的复杂过程。
3. 便于动态配置对象:可以在运行时动态地获取和配置原型对象。
以下是一个简单的 Java 原型模式示例:
interface Prototype {
Prototype clone();
}
class ConcretePrototype implements Prototype {
private int value;
ConcretePrototype(int value) {
this.value = value;
}
@Override
public Prototype clone() {
return new ConcretePrototype(value);
}
public void showValue() {
System.out.println("Value: " + value);
}
}
public class PrototypePatternExample {
public static void main(String[] args) {
ConcretePrototype prototype = new ConcretePrototype(10);
ConcretePrototype clone = (ConcretePrototype) prototype.clone();
prototype.showValue();
clone.showValue();
}
}
在上述示例中, ConcretePrototype 类实现了克隆自身的方法,通过调用 clone 方法创建新的对象。