原型模式简单的解释,一个对象通过clone方法克隆出新的对象就是原型模式。
优点就是快,不用类加载,初始化巴拉巴拉
具体实现
首先有一个类实现了clonable接口,如
public class Cloth implements Cloneable {
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override public Object clone() throws CloneNotSupportedException {
return super.clone();
}
@Override public String toString() {
return color;
}
}
这里为了方便打印,只重写了toString
写个类测试下:
public class ProtoTypeMain {
public static void main(String[] args) throws CloneNotSupportedException {
Cloth protoCloth = new Cloth();
protoCloth.setColor("red");
Cloth a= (Cloth)protoCloth.clone();
Cloth b= (Cloth) protoCloth.clone();
System.out.println(a);
System.out.println(b);
}
}
打印结果
red
red
到这里原型模式就已经实现了。既然提到了clone方法,就必须要介绍下深复制、浅复制。