1.定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Specify the kind of objects to create using a prototypical instance, and create new objects by copying this prototype.
2. 代码示例
public class Protype implements Cloneable{ //在java里面原型模式通过实现Cloneable接口便可以降此类进行复制(直接复制内存中的二进制流)
private ArrayList<String> arrayList=new ArrayList<>();
public Protype() //在new 此类的时候构造器会被调用, 而clone不会调用构造器,即不会重新实例化。
{
System.out.println("构造函数调用");
}
@Override
public Protype clone()
{
Protype t=null;
try {
t= (Protype) super.clone(); //此方法复制本类的时候 java中是不会复制原有类的数组和引用的,所有的副本都指向同一个引用,称为浅复制
t.arrayList=(ArrayList<String>) this.arrayList.clone(); //深复制 不仅复制本对象,里面的数组和引用也进行复制。
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return t;
}
}
************原形模式************
构造函数调用
原型模式适用于直接从内存中复制对象,减少了通过new 的实例化过程。