原型模式(Prototype Pattern)
定义:Specify the kinds of objects to create using a prototypical
instance,and create new objects by copying this
prototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。) 原型模式属于对象创建模式,GOF
给它的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
工厂模式对新产品的适应能力比较弱:创建新的产品时,就必须修改或者增加工厂角色。而
且为了创建产品对象要先额外的创建一个工厂对象。那通过原型模式来创建对象会是什么样
子呢?
结构:
- 客户角色:让一个原型克隆自己来得到一个新对象。
- 抽象原型角色:实现了自己的 clone 方法,扮演这种角色的类通常是抽象类,且它具有
许多具体的子类。 - 具体原型角色:被复制的对象,为抽象原型角色的具体子类。
原型模式实际上就是实现 Cloneable 接口,重写 clone()方法。
使用原型模式的优点:
● 性能优良 原型模式是在内存二进制流的拷贝,要比直接 new 一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好地体现其优点。
● 逃避构造函数的约束,这既是它的优点也