原型模式浅克隆深克隆-学习笔记

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

不通过new的方式,而是通过一个方法去创建对象,保留原来的值不变。

适用场景

1.new一个对象时需要非常繁琐的过程(字段多,构造方法复杂,数据准备)。

2.循环体内会产生大量对象,占用系统内存。

3. 类初始化消耗资源比较大。

代码示例:

 使用浅克隆的方式实现

实体类:

测试类:

 输出:

false 说明我的clone方法已经生效copy的对象是新的地址。

这时对新的对象添加新的爱好:

发现我的原型对象被破坏了,爱好里也有了QQ飞车 比较了hobby属性的地址后返回true。

说明浅拷贝只能拷贝值类型,对引用类型无效。

 修改实体类里的clone() 对hobby属性进行拷贝

再次输出就实现了对整个User对象的的深拷贝。

姓名:阿张
年龄:18
爱好:[爱学Java, 爱学Python]


姓名:阿张
年龄:18
爱好:[爱学Java, 爱学Python, 爱玩QQ飞车]
false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值