原型模式是指通过类的实例来创建新的实例,原型模式一般用在需要大量创建同一个类型的实例,简化new实例的开销。听着挺晕的,用一个生活中的例子可能好理解一些。俄罗斯套娃不知道见过没,就是一个娃娃里面套着一个稍小一些的娃娃,一直到很小很小的娃娃。代码如下。
public class TaoWa : ICloneable//继承.net封装好的接口,该接口只定义一个Clone方法
{
private string no;
public void SetInfo(string no)
{
this.no = no;
}
public void ShowInfo()
{
Console.WriteLine("我是第{0}个娃娃", no);
}
public object Clone()
{
return this.MemberwiseClone();//MemberwiseClone 方法是创建当前实例的浅副本。
}
}
//客户端调用
TaoWa taowa1 = new TaoWa();
taowa1.SetInfo("1");
TaoWa taowa2 = (TaoWa)taowa1.Clone();
taowa2.SetInfo("2");
TaoWa taowa3 = (TaoWa)taowa2.Clone();
taowa3.SetInfo("3");
taowa1.ShowInfo();
taowa2.ShowInfo();
taowa3.ShowInfo();
浅复制和深复制也叫浅拷贝和深拷贝。浅复制简单理解就是只能复制类中的值类型,引用类型则不能够复制,而深复制则没有限制。