简历复印


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

大话设计模式七之原型模式



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

大话设计模式七之原型模式


大话设计模式七之原型模式


.NET再System命名空间中提供了ICloneable接口,其中就是唯一的一个方法Clone(),这样只需要实现这个接口就可以完成原型模式了。


clone对性能是又大的提高的。每NEW一次,都需要执行一次构造函数,如果构造函数的执行时间很长,那么多次的执行这个初始化操作就实在是太低效了。

等于是不用重新初始化对象,而是动态地获得对象运行时的状态。





浅复制与深复制

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



一般在初始化信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提高。


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

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


大话设计模式七之原型模式


大话设计模式七之原型模式


大话设计模式七之原型模式

大话设计模式七之原型模式

大话设计模式七之原型模式


数据集对象DataSet,它就又Clone()方法和Copy()方法,Clone()方法用来复制DataSet的结构,但不复制DataSet的数据,实现了原型模式的浅复制。Copy()方法不但复制结构,也复制数据,其实就是实现了原型模式的深复制。






相关文章:

  • 2021-10-29
  • 2021-12-14
  • 2022-01-11
  • 2022-12-23
  • 2021-05-11
  • 2021-12-12
  • 2021-08-13
  • 2022-12-23
猜你喜欢
  • 2021-08-26
  • 2022-12-23
  • 2021-07-03
  • 2022-02-16
  • 2021-12-05
  • 2022-12-23
  • 2021-05-18
相关资源
相似解决方案