定义
一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。复刻或者克隆的方法由被克隆的对象提供。
类图
代码
public class PrototypePattern {
public static void main(String[] args) {
Plane plane = new Plane();
System.out.println(plane.getName()+" "+plane.getType());
Plane clone = (Plane)plane.clone();
System.out.println(clone.getName()+" "+clone.getType());
}
}
interface Prototype{
Object clone();
}
class Plane implements Prototype{
private String name;
private String type;
public Plane(){
name ="Name"+Math.random();
type="Type"+Math.random();
}
public Plane(Plane plane){
this.name=plane.name;
this.type=plane.type;
}
public String getName(){
return name;
}
public String getType(){
return type;
}
@Override
public Object clone() {
return new Plane(this);
}
}
场景
Java 中的clone方法