예제코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp_Prototype { abstract class Prototype { private string _id; public Prototype(string id) { this._id = id; } public string Id { get { return _id; } } public abstract Prototype Clone(); } class ConcretePrototype1 : Prototype { public ConcretePrototype1(string id) : base(id) { } public override Prototype Clone() { return (Prototype)this.MemberwiseClone(); } } class ConcretePrototype2 : Prototype { public ConcretePrototype2(string id) : base(id) { } public override Prototype Clone() { return (Prototype)this.MemberwiseClone(); } } class Program { static void Main() { ConcretePrototype1 p1 = new ConcretePrototype1("I"); ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone(); Console.WriteLine("Cloned: {0}", c1.Id); ConcretePrototype2 p2 = new ConcretePrototype2("II"); ConcretePrototype2 c2 = (ConcretePrototype2)p2.Clone(); Console.WriteLine("Cloned: {0}", c2.Id); Console.ReadKey(); } } } | cs |
'Programming > Design Pattern' 카테고리의 다른 글
[C# 디자인패턴] 제8강 브릿지패턴 (0) | 2015.07.18 |
---|---|
[C# 디자인패턴] 제7강 어댑터패턴 (0) | 2015.07.18 |
[C# 디자인패턴] 제5강 빌더패턴 (0) | 2015.07.18 |
[C# 디자인패턴] 제4강 추상팩토리패턴 (0) | 2015.07.18 |
[C# 디자인패턴] 제3강 팩토리메소드패턴 (0) | 2015.07.18 |