static void Main(string[] args) { Prototype prototype = new ConcretePrototype("yepeng"); Prototype clone = prototype.Clone() as ConcretePrototype; Prototype clone2 = prototype.Clone() as ConcretePrototype; Console.WriteLine($"clone1:{clone.Id},clone2:{clone2.Id}"); Console.ReadKey(); }
static void Main() { // 孙悟空原型 MonkeyKingPrototype monkeyKingPrototype = new ConcretePrototype("MonkeyKing"); // 变一个 MonkeyKingPrototype cloneMonkeyKing1 = monkeyKingPrototype.Clone() as ConcretePrototype; // 变两个 MonkeyKingPrototype cloneMonkeyKing2 = monkeyKingPrototype.Clone() as ConcretePrototype; }
static void Main(string[] args) { var abstractPrototype = new ConcretePrototype(System.Guid.NewGuid().ToString()); var cloneType = abstractPrototype.Clone() as ConcretePrototype; Console.WriteLine("Cloned1:\t" + cloneType.Id); var cloneType2 = abstractPrototype.Clone() as ConcretePrototype; Console.WriteLine("Cloned2:\t" + cloneType.Id); Console.Read(); }
static void Main() { ConcretePrototype prototype = new ConcretePrototype("1"); ConcretePrototype clone = (ConcretePrototype)prototype.Clone(); Console.WriteLine("Cloned: {0}", clone.Id); }
static void Main(string[] args) { Prototype prototype = new ConcretePrototype(1); Prototype clone = prototype.Clone(); System.Console.WriteLine(prototype.Id + " proto"); System.Console.WriteLine(clone.Id + " Clone"); }
static void Main(string[] args) { var state = new ReferenceType(1, "Some string"); var prototype = new ConcretePrototype(state); var clone = prototype.Clone(); var dotNetPrototype = new DotNetPrototype(state); var dotNetClone = dotNetPrototype.Clone(); }
static void Main(string[] args) { ConcretePrototype p1 = new ConcretePrototype("I"); ConcretePrototype c1 = (ConcretePrototype)p1.Clone(); Console.WriteLine("Cloned: {0}", c1.Id); ConcretePrototype1 p2 = new ConcretePrototype1("II"); ConcretePrototype1 c2 = (ConcretePrototype1)p2.Clone(); Console.WriteLine("Cloned: {0}", c2.Id); // Wait for user Console.ReadKey(); }
static void Main(string[] args) { //.Net에서는 ICloneable interface를 이용해서 Prototype 패턴을 구현합니다. var prototype = new ConcretePrototype(); var prototype2 = new ConcretePrototype(prototype); var clone = prototype.Clone(); prototype.print(); prototype2.print(); //가장 상위의 Prototype class에는 print() 메소드가 없습니다. Console.WriteLine($"Clone Value: {clone.Value}"); //Composite 패턴과 Decorator 패턴을 결합해서 사용하면 좋습니다. }
static void Main() { ConcretePrototype prototype = new ConcretePrototype("1"); ConcretePrototype clone = (ConcretePrototype)prototype.Clone(); Console.WriteLine("Cloned: {0}", clone.Id); }
static void Main(string[] args) { PrototypeClass prototype = new ConcretePrototype("X-One"); PrototypeClass clonedPrototype = prototype.Clone(); }