软件设计 原型模式 Prototype Pattern
原型模式实际上就是对象的拷贝。
原型模式使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。也就是说,原型对象作为模板,通过克隆操作,来产生更多的对象,就像细胞的复制一样。
对于类中基本数据类型,会直接复制值给拷贝对象。
对于类中引用类型,只会复制对象的地址,而实际上指向的还是原来的那个对象。
// 基本类型浅拷贝
int a = 10;
int b = a;
// 输出:true
System.out.println(a == b);
// 引用类型浅拷贝,拷贝的仅仅是对上面对象的引用
Object o = new Object();
Object k = o;
// 输出:true
System.out.println(o == k);
在 Java 中,就可以实现 Cloneable 接口提供的拷贝机制,来实现原型模式:
1、定义实体类实现 Cloneable 接口
/**
* 用户
* <p>注意需要实现 Cloneable 接口
*/
public class Student implements Cloneable {
String name;
public Student(String name){
this.name = name;
}
public String getName() {
return name;
}
/**
* 提升clone方法的访问权限
* @return 对象
* @throws CloneNotSupportedException 不支持克隆异常
*/