设计模式-02原型模式(Prototype)
1.模式动机 在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。 简单粗暴的理解就是:创建一个对象当做模板,然后利用这个模板使用 clone 方法快速的创建一个新的对象。 2.模式定义 原型模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。用这种方式创建对象非常高效,根本无须知道对象创建的细节。 3.模式代码 使用 Java 中提供的 clone 方法实现原型模式非常简单。但是要注意 浅克隆 和 深克隆 ,这里就不具体说这两个名词了。 import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class User implements Cloneable{ private String name; public User(String name) { this.name = name; } @Override protected User clone() throws CloneNotSupportedException { System.out