关于C# 设计模式 Prototype 原型模式

关于C# 设计模式 Prototype 原型模式

using System;
using System.Collections.Generic;
using System.Text;

///Prototype(原型)模式用于动态抽取当前对象运行时的状态,从自身构造出一个新的对象,即自身的拷贝(往往是深拷贝)。
///add by jzh 2007-04-15
namespace DesignPattern
{
    abstract class AbstractPrototype
    {
        abstract public AbstractPrototype CloneYourself();
    }

    class MyPrototype : AbstractPrototype
    {
        override public AbstractPrototype CloneYourself()
        {
            return ((AbstractPrototype)MemberwiseClone());
        }
    }

    class Demo
    {
        private AbstractPrototype internalPrototype;

        public void SetPrototype(AbstractPrototype thePrototype)
        {
            internalPrototype = thePrototype;
        }

        public void SomeImportantOperation()
        {
            AbstractPrototype x;
            x = internalPrototype.CloneYourself();
            Console.WriteLine("完成复制");
        }
    }

    public class Client
    {
        public static void Main(string[] args)
        {
            Demo demo = new Demo();
            MyPrototype clientPrototype = new MyPrototype();
            demo.SetPrototype(clientPrototype);
            demo.SomeImportantOperation();

            Console.ReadLine();
        }
    }
}

 

发表回复

您的电子邮箱地址不会被公开。