设计模式 – 原型模式(Prototype Pattern)

内容纲要

原型模式(Prototype Pattern)是一种创建型设计模式,它通过复制已有对象的实例来创建新对象,而不是通过调用构造函数。原型模式适用于创建成本高昂或复杂性较高的对象,复制已有实例可以节省资源并提高效率。

以下是一个简单的Java实现:

  1. 首先,创建一个实现了Cloneable接口的抽象原型类:
public abstract class Prototype implements Cloneable {
    public abstract Prototype clone() throws CloneNotSupportedException;
}
  1. 创建具体原型类,实现抽象原型类:
public class ConcretePrototype extends Prototype {
    private String field;

    public ConcretePrototype(String field) {
        this.field = field;
    }

    public void setField(String field) {
        this.field = field;
    }

    public String getField() {
        return field;
    }

    @Override
    public Prototype clone() throws CloneNotSupportedException {
        return (ConcretePrototype) super.clone();
    }
}
  1. 使用原型模式创建对象:
public class Main {
    public static void main(String[] args) {
        ConcretePrototype prototype1 = new ConcretePrototype("Prototype1");
        System.out.println("Original Prototype: " + prototype1.getField());

        try {
            ConcretePrototype prototype2 = (ConcretePrototype) prototype1.clone();
            System.out.println("Cloned Prototype: " + prototype2.getField());

            prototype2.setField("Prototype2");
            System.out.println("Modified Cloned Prototype: " + prototype2.getField());
            System.out.println("Original Prototype after modification: " + prototype1.getField());
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }
}

运行上述代码,你将看到:

Original Prototype: Prototype1
Cloned Prototype: Prototype1
Modified Cloned Prototype: Prototype2
Original Prototype after modification: Prototype1

这个示例展示了如何使用原型模式复制一个对象。请注意,在复制过程中,原始对象保持不变。这种模式特别适用于创建成本高昂或复杂性较高的对象,因为通过复制已有实例可以节省资源并提高效率。

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward