GOF 设计模式小白教程之原型模式

本贴最后更新于 1943 天前,其中的信息可能已经物是人非

原型模式(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 方法即可。在创建对象比较麻烦繁琐的时候使用原型模式可以大大提高效率。

  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • 原型模式
    2 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...