介绍:
原型模式是一个创建型的模式。原型二字表明了该模式应该有一个样板实例,用户从这个样板对象中复刻出一个内部属性一致的对象,这个过程也就是我们俗称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建爱你复杂的或者构造耗时的实例。
通过clone拷贝对象时并不会执行构造函数,因此,如果在构造函数中需要一些特殊的初始化操作的类型。拷贝的对象修改属性,并不会影响原始对象的属性。
浅拷贝和深拷贝:
上面的原型模式,实际只是一个浅拷贝,也称为影子拷贝,这份拷贝实际上并不是将原始对象的所有属性都重新构造了一份,而是副本对象的属性引用原始对象的属性。浅拷贝的副本修改属性,不会影响原始对象的属性,但是如果副本对象添加的话则会影响。所以建议使用深拷贝。