设计模式-创建型-原型模式

原型模式是指通过类的实例来创建新的实例,原型模式一般用在需要大量创建同一个类型的实例,简化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();


浅复制和深复制也叫浅拷贝和深拷贝。浅复制简单理解就是只能复制类中的值类型,引用类型则不能够复制,而深复制则没有限制。

你可能感兴趣的:(设计模式)