原型模式:用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。、

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

对于.net来说在System命名空间中提供了ICloneable接口,其中就是唯一的一个方法Clone(),

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

深复制浅复制

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

浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。
深复制:深复制目的:把复制过得对象所引用的对象都复制一遍。深复制把引用对象的变量指向复制过得新对象,而不是原有的被引用的对象。

class workexperience:ICloneable
{
private string workDate;
public string WorkDate{
get{ return workDate;}
set{ workDate=value;}
}
private string company;
public string Company{
get {return company;}
set{company=value;}
}
public Object Clone()
{
return (Object)this.MemberwiseClone();
}
}

在构造函数、clone()函数、对应类有所变化,等于是二重复制。即深复制。

提供Clone方法调用的私有构造函数,一遍克隆工作经历的数据。

调用私有的构造方法,让“工作经历”克隆完成,然后再给这个建立对象的相关字段赋值,最终返回一个深复制的简历对象。

设计模式考前预习—7_原型模式

相关文章:

  • 2021-08-11
  • 2022-12-23
  • 2021-11-10
  • 2022-12-23
  • 2021-12-12
  • 2021-11-20
  • 2021-11-20
  • 2021-11-20
猜你喜欢
  • 2021-12-26
  • 2021-07-22
  • 2021-10-10
  • 2022-01-02
  • 2022-01-14
  • 2021-10-09
  • 2021-06-19
相关资源
相似解决方案