原型模式
在学习原型模式之前,首先了解下java的对象克隆。
java中原始数据类型(byte,char,short,int,long,float,double,boolean)这八种类型的变量的复制很简单,比如:
int a = 1;
int b = a;
但是复制一个对象就不是这样的了。
初学者也许会这样写:
//一个简历类
class Resume{
private String name; //简历中你的姓名
private int age;//简历中你的年龄
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class TestResume{
public static void main(String[] args) {
Resume resume1 = new Resume();
resume1.setName("Tom");
resume1.setAge(30);
Resume resume2 = resume1; //将resume1对象的地址赋值给了resume2
System.out.println("resume1:"+"姓名:"+resume1.getName()+" 年龄:"+resume1.getAge());
System.out.println("resume2:"+"姓名:"+resume2.getName()+" 年龄:"+resume2.getAge());
}
}
打印的结果:
resume1:姓名:Tom 年龄:30
resume2:姓名:Tom 年龄:30
现在改变resume2实例的name字段,再打印结果看看:
resume2.setName("Mary");
System.out.println("resume1:"+"姓名:"+resume1.getName()+" 年龄:"+resume1.getAge());
System.out.println("resume2:"+"姓名:"+resume2.getName()+" 年龄:"+resume2.getAge