0x00 原型模式概述
通过一个原型对象,创建(clone)出多个相似的其他对象。常见的有浅克隆(Cloneable)和深克隆( Serializable)。浅克隆和深克隆的主要
区别在于是否支持引用类型的成员变量的复制
,下面将对两者进行详细介绍。
0x01 浅克隆
浅克隆示意图如下。
0x10 深克隆
在深克隆中,除了对象本身被复制外,对象所包含的所有成员变量(包含引用类型的变量)也将复制。
0x11 总结
- 优点:当创建对象实例较为复杂时,可以简化对象创建的过程;使用深克隆保存对象状态,便于恢复操作。
- 缺点:克隆方法位于类内部,修改会违背开闭原则。深克隆方法编写较为复杂。
- 适用场景:新的实例可以通过原型对象复制获得,如果是相似对象,对其成员变量稍作修改。