克隆模式
什么是克隆模式
用原型实例指定要创建对象地种类,并通过拷贝这些原型地属性来创建新的对象
主要过程:
- 分配一块新的内存空间给新的对象
- 拷贝父本对象地所有属性
深拷贝和浅拷贝
浅拷贝只拷贝引用类型对象的指针(指向),而不拷贝引用类型对象指向的值;深拷贝则同时拷贝引用类型对象及其指向的值
使用克隆模式时,除非特殊情况(如需求本身就要求两个对象一起改变),尽量使用深拷贝方式
优缺点
优点:
- 克隆模式通过内存拷贝的方式进行复制,比new的方式创建对象性能更好
- 通过深拷贝的方式,可以方便地创建出一个具有相同属性和行为地另一个对象,特别是对于复杂对象,方便性尤为突出
缺点:
通过克隆方式创建对象,不回执行类地初始化函数,有时候这点不是缺点,有时候这点又是致命缺点
应用场景
- 如果创建新对象(如复杂对象)成本较高,我们可以利用已有的对象进行复制来获得
- 类的初始化需要消耗非常多的资源时,如需要消耗很多数据、硬件等资源
- 可配合备忘录模式做一些备份工作