原型模式是一种创建型设计模式,它允许我们通过复制一个已有对象来创建一个新对象,而无需再次实例化和配置。
在实际开发中,有时我们需要创建一个与已有对象相似但略有不同的新对象,这时候使用原型模式就非常方便了。通过复制已有对象,我们可以快速创建新对象,并在需要的基础上进行修改。
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
,最后对person2
的name
属性进行了修改。
通过使用原型模式,我们可以避免重复地实例化和配置对象,并且可以更加灵活地创建新对象。值得注意的是,由于 Java 中的 clone()
方法是浅拷贝,即只复制对象本身的属性而不复制属性所引用的对象,因此如果对象中包含了其他引用类型的属性,则需要进行深拷贝或其他额外的处理。