原型模式(ProtoType)

本文介绍了原型模式的概念,即通过拷贝已有对象创建新对象的方法,并探讨了在.NET中如何利用ICloneable接口实现原型模式。文章还讨论了浅复制与深复制的区别。

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

原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。

.Net 在 system 命名空间中提供了ICloneable接口,接口中定义了唯一的一个方法 Clone() , 只需要实现这个接口就能完成原型模式了。

一般在初始化信息不发生变化的情况下,克隆是最好的方法,这样既隐藏了对象创建的细节,又提高了性能。(不用重新创新初始化对象,而是动态的获取对象运行时的状态)

MemberwiseClone(_) 方法是这样的,如果字段是值类型,则对该字段执行逐位复制,如果字段是引用类型,则复制引用而不复制引用的对象(原始对象及其复本引用同一对象)

浅复制: 被复制对象的所有变更都含有与原来的对象相同的值,而所有的对其它对象的引用都仍然指向原来的对象。

深复制: 把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。

转载于:https://www.cnblogs.com/wisdo/p/4263815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值