- 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
例子:
某公司要创建一个公文管理器,在公文管理器中提供一个集合对象来存储一些常用的公文模板,用户可以通过复制这些公文模板快速创建新的公文。
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;
}
}
}
如有错误的地方还请指正!