定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
我们知道产生一个对象,我们可以通过new关键字,但如果我们是通过对象复制来实现的产生一个对象,那么,这种模式叫做原型模式。
先来看一下原型模式的通用代码。
public class PrototypeClass implements Cloneable {
//覆写父类的Object方法
@Override
public PrototypeClass clone(){
PrototypeClass prototypeClass = null;
try {
prototypeClass = (PrototypeClass) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return prototypeClass;
}
}
这里我们实现了Cloneable,然后我们会发现Cloneable是一个空实现,其实它的作用,是告诉JVM这是一个可以被拷贝的类,那么这个clone方法是从哪里来的呢,他是重写了Object对象,我们都知道Java所有的类都是继承Object的。写完这个类之后,我们就可以通过clone方法产生对象了。
那么原型模式有什么优点呢?
他的最大优点就是性能好。
运用clone我们要注意两点,第一点是clone的对象构造函数不会被执行,第二点要时刻注意浅拷贝和深拷贝。