原型模式
原型模式的理解就是复制,直接上代码:
public abstract class KingPrototype
{
public string Id { get; set; }
public MonkeyKingPrototype(string id)
{
this.Id = id;
}
// 克隆方法,即孙大圣说“变”
public abstract MonkeyKingPrototype Clone();
}
/// <summary>
/// 创建具体原型
/// </summary>
public class ConcretePrototype : KingPrototype
{
public ConcretePrototype(string id)
: base(id)
{ }
/// <summary>
/// 浅拷贝
/// </summary>
/// <returns></returns>
public override MonkeyKingPrototype Clone()
{
// 调用MemberwiseClone方法实现的是浅拷贝,另外还有深拷贝
return (MonkeyKingPrototype)this.MemberwiseClone();
}
}
//使用
// 孙悟空 原型
KingPrototype prototypeKing = new ConcretePrototype("MonkeyKing");
// 变一个
MonkeyKingPrototype cloneMonkeyKing =prototypeKing.Clone() as ConcretePrototype;
Console.WriteLine("Cloned1:\t"+cloneMonkeyKing.Id);
浙公网安备 33010602011771号