设计模式:克隆模式

发布时间:2021-10-01 22:59:49 阅读:(128)

    克隆模式

    什么是克隆模式

    用原型实例指定要创建对象地种类,并通过拷贝这些原型地属性来创建新的对象

    主要过程:

    • 分配一块新的内存空间给新的对象
    • 拷贝父本对象地所有属性

    深拷贝和浅拷贝

    浅拷贝只拷贝引用类型对象的指针(指向),而不拷贝引用类型对象指向的值;深拷贝则同时拷贝引用类型对象及其指向的值

    使用克隆模式时,除非特殊情况(如需求本身就要求两个对象一起改变),尽量使用深拷贝方式

    优缺点

    优点:

    • 克隆模式通过内存拷贝的方式进行复制,比new的方式创建对象性能更好
    • 通过深拷贝的方式,可以方便地创建出一个具有相同属性和行为地另一个对象,特别是对于复杂对象,方便性尤为突出

    缺点:
    通过克隆方式创建对象,不回执行类地初始化函数,有时候这点不是缺点,有时候这点又是致命缺点

    应用场景

    • 如果创建新对象(如复杂对象)成本较高,我们可以利用已有的对象进行复制来获得
    • 类的初始化需要消耗非常多的资源时,如需要消耗很多数据、硬件等资源
    • 可配合备忘录模式做一些备份工作