原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
原型模式其实从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节
class Program
{
static void Main(string[] args)
{
ConcretePrototype1 p1 = new ConcretePrototype1("I");
ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();
Console.WriteLine("Cloned:{0}",c1.Id);
}
}
abstract class Prototype
{
private string id;
public Prototype(string id)
{
this.id = id;
}
public String Id
{
get { return id; }
}
public abstract Prototype Clone();//抽象类关键就是有这样一个Clone方法
}
class ConcretePrototype1 : Prototype
{
public ConcretePrototype1(string id): base(id)
{ }
public override Prototype Clone()
{
return (Prototype)this.MemberwiseClone();//创建当前对象的浅表副本。
}
}