原始模型(Prototype)模式学习笔记

  • 原始模型模式其实就是“克隆”,当我们的系统需要对模型对象(MVC中的M)复制一份的时候非常有用。采取这种模式就免去了我们必须知道一些细节才能实例化。
  • 原始模型模式分为两种两种表现形式:第一种是简单形式,第二种是登记形式,区别无非在于后者有一个管理器。管理器的好处是可以防止重复复制,减少资源浪费。
  • 说到“克隆”就不能不说浅复制和深复制
  • 浅复制(浅克隆)是指只复制当前对象和其基本数据类型的值,对其属性域(字段)的对象引用不复制。如private int i;值会被复制,而private String s;则只是复制了一下引用,两者仍然指向同一个实例,说白了仍然是复制了一下值,只不过复制的是地址值(理解java的值传递就比较容易理解这个)
  • 深复制(深克隆)相反,将对象也复制一份。这里就要小心,是否出现循环的情况。用序列化+io操作可以轻易实现深复制。只需要被复制的对象实现Serializable接口。问题:如果属性域对象没有实现Serializable接口呢?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值