设计模式——原型模式
设计模式中,单例模式应该是大家最为熟悉的了,那如果我们需要对一个对象进行多次复制的话,大家会用什么呢?这就要用到今天要讲的原型模式了。 简介 其定义为: 使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象。 具体来说就是,通过给出一个原型对象来指明所创建的对象的类型,然后使用自身实现的克隆接口来复制这个原型对象,该模式就是用这种方式来创建出更多同类型的对象。 这样的好处是: Object 类的 clone() 方法是一个本地方法,它可以直接操作内存中的二进制流,所以性能相对 new 实例化来说,更加优秀。 一个对象通过 new 实例化创建过程为: 在内存中开辟一块空间。 在开辟的内存空间中创建对象。 调用对象的构造函数进行初始化对象。 而一个对象通过 clone() 创建过程为: 根据原对象内存大小开辟一块内存空间。 复制已有对象,克隆对象中所有属性值。 相对 new 来说,clone() 少了调用构造函数。如果构造函数中存在大量属性初始化或大对象,则使用 clone() 的复制对象的方式性能会好一些。 简单例子 让我们通过一个例子来具体了解一下: /** * 实现Cloneable 接口的原型抽象类Prototype */ public class Prototype implements Cloneable { /** * 重写 clone() 方法 */