原型模式
Prototype Pattern
用于创建重复的对象,同时又能保证性能。
当需要创建一个与已有对象类似的对象,或者当创建对象的成本比克隆更高时,使用原型模式
通过实现Clone方式生成新的实例,根据需要选择深copy和浅copy
namespace 原型模式
{
/// <summary>
/// 当创建一个类的实例的过程很昂贵或很复杂,
/// 并且我们需要创建多个这样类的实例时,
/// 如果我们用new操作符去创建这样的类实例,
/// 这未免会增加创建类的复杂度和耗费更多的内存空间,
/// 因为这样在内存中分配了多个一样的类实例对象
/// </summary>
public abstract class MonkeyKingPrototype
{
public string Id { get; set; }
public MonkeyKingPrototype(string id)
{
this.Id = id;
}
public abstract MonkeyKingPrototype Clone();
}
public class MonkeyKing : MonkeyKingPrototype
{
public MonkeyKing(string id) : base(id) { }
public override MonkeyKingPrototype Clone()
{
//深copy 和 浅copy
return (MonkeyKingPrototype)this.MemberwiseClone();
}
}
class Program
{
static void Main(string[] args)
{
MonkeyKing monkeyKing = new MonkeyKing("齐天大圣");
MonkeyKingPrototype prototype1 = monkeyKing.Clone();
MonkeyKingPrototype prototype2 = monkeyKing.Clone();
Console.WriteLine("Hello World!");
}
}
}
标签:MonkeyKing,string,05,Clone,MonkeyKingPrototype,模式,原型,copy,public
From: https://www.cnblogs.com/thomerson/p/16894336.html