了解一下原型模式

原型模式,就是我们在有一个原型对象后,要继续创建对象时,可以不通过new来创建新对象,而是通过克隆这个原型对象来得到一个新的对象。

克隆有两个类型,

深克隆和浅克隆:

浅克隆就是使用默认的clone()方法,只复制它本身和值类型的成员变量,而引用类型的成员变量不会复制,当原型对象修改引用类型的值时,克隆对象也会被修改,但是他们两者的哈希值是不一样的。

深克隆有两种方法,重写clone方法和通过对象序列化,可以将除了原型对象本身和所有成员变量都复制。

原型模式的优点有:

    当创建的对象实例比较复杂的时候,使用原型模式可以简化对象的创建过程,通过复制一个已有的实例提高创建效率。

    如果原型对象增加或删除属性时,克隆对象也会一起改变,不用修改代码。

    原型模式提供了简化的创建结构,比如工厂模式需要有一个工厂类来创建,而原型模式只需要通过封装在类中的克隆方法实现

    原型模式还可以用来保存对象的状态,就相当于存档,以便在需要的时候使用,可以恢复到保存时的这一状态。

缺点:

    需要为每一个类配置一个克隆方法,而且这个方法在类的内部,当对已有类进行改造时,需要修改代码,违反了开闭原则

  在实现深克隆的时候需要编写比较复杂的代码,实现起来比较麻烦

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值