设计模式之原型模式

来源:互联网 发布:json图片解析 编辑:程序博客网 时间:2024/06/02 01:45
  • 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
    例子:
    某公司要创建一个公文管理器,在公文管理器中提供一个集合对象来存储一些常用的公文模板,用户可以通过复制这些公文模板快速创建新的公文。
    这里写图片描述
namespace 原型模式{class Program    {static void Main(string[] args)        {            TemplateManager manager = new TemplateManager();            ContretePrototype prototype = new ContretePrototype();            prototype.Attr = "excela";            ContretePrototype copy = manager.getTemplateByName("excelb");            Console.WriteLine(prototype.Attr);            Console.WriteLine(copy.Attr);            Console.ReadKey();}    }   public abstract class Prototype    {public abstract Prototype Clone();    }    public class ContretePrototype:Prototype    {        private string attr;        public string Attr        {            get { return attr; }            set { attr = value; }}        public override Prototype Clone()        {            //throw new NotImplementedException();            ContretePrototype prototype = new ContretePrototype();            prototype.attr = attr;            return prototype;}    }    public class TemplateManager    {        private ContretePrototype prototype;        public ContretePrototype getTemplateByName(string name)        {if(prototype==null)            {prototype = new ContretePrototype();            }            prototype.Clone();            prototype.Attr = name;            return prototype;            }      }}

如有错误的地方还请指正!