105原型模式

45 阅读1分钟

定义

一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。复刻或者克隆的方法由被克隆的对象提供。

类图

图片1.png

代码

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方法