23种设计模式-原型模式

25 阅读1分钟

原型模式是一种创建型设计模式,它允许我们通过复制一个已有对象来创建一个新对象,而无需再次实例化和配置。

在实际开发中,有时我们需要创建一个与已有对象相似但略有不同的新对象,这时候使用原型模式就非常方便了。通过复制已有对象,我们可以快速创建新对象,并在需要的基础上进行修改。

java代码实现

首先,定义一个原型类 Person

public class Person implements Cloneable {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public Person clone() throws CloneNotSupportedException {
        return (Person) super.clone();
    }
}

这个类实现了 Cloneable 接口,并重写了 clone() 方法,以便能够通过复制已有对象来创建新对象。

接下来,我们可以创建一个新对象,并使用 clone() 方法复制已有对象,然后对复制得到的新对象进行修改:

public class Client {
    public static void main(String[] args) throws CloneNotSupportedException {
        Person person1 = new Person("John", 25);
        Person person2 = person1.clone();

        person2.setName("Mike");

        System.out.println(person1.getName()); // 输出 John
        System.out.println(person2.getName()); // 输出 Mike
    }
}

在这个例子中,我们先创建了一个 Person 对象 person1,然后通过调用 clone() 方法复制了这个对象并赋值给 person2,最后对 person2name 属性进行了修改。

通过使用原型模式,我们可以避免重复地实例化和配置对象,并且可以更加灵活地创建新对象。值得注意的是,由于 Java 中的 clone() 方法是浅拷贝,即只复制对象本身的属性而不复制属性所引用的对象,因此如果对象中包含了其他引用类型的属性,则需要进行深拷贝或其他额外的处理。