• 设计模式二


    设计模式二

    一、原型模式

      主要用于创建重复的对象,同时又能保证性能。这种模式是实现一个原型接口,该接口用于创建当前对象的克隆。比如,当一个对象需要在一个高代价的数据操作之后被创建,我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用

      主要解决,在运行期建立和删除原型。

      关键代码,继承Cloneable,重写clone()

    二、原理解释

      首先要明白,原型模式是要复制指定对象,但是被复制的对象必须实现Clonable,重写Clon()方法。Clonable是一个标记接口,没有什么用,但是clone的时候不会抛异常。

      原型模式分为浅拷贝和深拷贝

      浅拷贝:当类的成员变量是基本数据类型时,浅拷贝会复制该属性的值赋值给新对象。2、当成员变量是引用数据类型时,浅拷贝复制的是引用数据类型的地址值。这种情况下,当拷贝出的,某一个类修改了引用数据类型的变量后,会导致所有拷贝出的类都发生改变。

      浅拷贝就是说,引用数据类型的变化,手原型的影响,原型改变,复制的也会改变。

      深拷贝:深拷贝不仅会复制成员变量为基本数据类型的值给新对象,还会给是引用数据类型的成员变量申请储存空间,并复制引用数据类型成员变量的对象。这样拷贝出的新对象就不怕修改了是引用数据类型的成员变量后,对其他拷贝出的对象造成影响了。

      深拷贝,一个是重写clone方法时,将引用数据类型,clone方法写上。

      

      深拷贝的方式二。

      就是将原型对象,实现Serializable接口,然后,写一个序列化与反序列化的类,现将类序列化输出,再将类反序列化读入,以此达到深拷贝的目的。用原型类,去调用这个序列化方法就可以。

  • 相关阅读:
    云计算 备忘录
    python 备忘录
    Linux 备忘录
    appium自动化的一个实例
    appium环境的搭建
    四则运算2单元测试
    四则运算2
    四则运算2程序设计思路
    上课未及时完成的原因
    随机生成30道四则运算题程序设计
  • 原文地址:https://www.cnblogs.com/gushiye/p/14007249.html
Copyright © 2020-2023  润新知