原型模式(Prototype)
定义:
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。
通俗解释:
美术课上老师布置了一个素描作业。然后同学们让美术课代表画了素描作业。其他同学就可以拿着这份素描作业去复印店复印。其他同学完全不用知道怎么画这个素描。美术课代表画的素描作业就是已经创建实例。它作为原型。用这个原型复制出新素描的话,无需关心素描细节。
代码:
实现了 Cloneable 的素描类,并重写了 clone 方法
public class Sketch implements Cloneable {
private String img;
public Sketch(String content) {
img = content;
}
public void show() {
System.out.println("画的内容:" + img);
}
public Sketch clone() throws CloneNotSupportedException {
return (Sketch) super.clone();
}
}
原型测试类,新建一张素描再通过复制展示出来
public class TestPrototype {
public static void main(String[] args) throws CloneNotSupportedException {
Sketch sketch1 = new Sketch("A beautiful girl");
sketch1.show();
Sketch sketch2 = sketch1.clone();
sketch2.show();
}
}
解析:
Java 自带的 clone 方法使得原型模式的实现非常简单,只需要重写一下 clone 方法即可。在创建对象比较麻烦繁琐的时候使用原型模式可以大大提高效率。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于