原型模式(Prototype)

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

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

 

UML结构图:

 

namespace PrototypePattern
{
    //原型模式 2017.07.22 23:19 by ldb
    abstract class Prototype
    {
        private string id;
        public Prototype(string id)
        {
            this.id = id;
        }

        public string Id
        {
            get { return id; }
        }

        public abstract Prototype Clone();
    }

    class ConcreatePrototype : Prototype
    {
        public ConcreatePrototype(string id) : base(id)
        {
        }

        public override Prototype Clone()
        {
            return (Prototype)this.MemberwiseClone();//创建当前对象的浅表对象。MemberwiseClone()object类的方法。
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            ConcreatePrototype p1 = new ConcreatePrototype("ii");
            ConcreatePrototype c1 = (ConcreatePrototype)p1.Clone();
            
            Console.WriteLine("Clone:{0}", c1.Id);//c1.id = ii

            Console.Read();
        }
    }
}

 

posted @ 2017-07-22 23:34  longdb  阅读(101)  评论(0)    收藏  举报