设计模式-7-原型模式

Posted MancosZeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-7-原型模式相关的知识,希望对你有一定的参考价值。

说明

通过对自身的浅层的克隆和深层的克隆,能在短期大量生成不同内存区域的相同值的对象

 public class PrototypeA 
    {
        public int i { get; set; }
        public List<string> lstr  { get; set; }
        public PrototypeA()
        {
            lstr = new List<string>();
        }
        public PrototypeA Clone()
        {
            PrototypeA entity = (PrototypeA)this.MemberwiseClone();
            entity.lstr = ((string[])this.lstr.ToArray().Clone()).ToList();
            return entity;
        }
        public void Print()
        {
           foreach(var str in lstr)
            {
                Console.WriteLine(str);
            }
            Console.WriteLine(i);
        }
    }
 Console.WriteLine("---------------");
            PrototypeA prototypeA = new PrototypeA();
            prototypeA.i = 5;
            prototypeA.lstr.Add("1");
            prototypeA.Print();
            Console.WriteLine("---------------");
            var proB = prototypeA.Clone();
            proB.Print();
            Console.WriteLine("---------------");
            proB.i = 7;
            proB.lstr.Add("2");
            proB.Print();
            Console.WriteLine("---------------");
            prototypeA.Print();

 

以上是关于设计模式-7-原型模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式笔记7:原型模式

设计模式之原型模式

7中创建对象的方式(工厂模式构造函数模式原型模式动态原型模式等分析)

设计模式-7-原型模式

设计模式4原型模式

原型模式