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 |
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { ConcreatePrototype c1 = new ConcreatePrototype("name"); ConcreatePrototype c2 = (ConcreatePrototype)c1.CreateClone(); } } /* Prototype 複製を作成するメソッドを用意する。*/ public interface Prototype { Prototype CreateClone(); } public class ConcreatePrototype : Prototype { private string name; public ConcreatePrototype() { } public ConcreatePrototype(string name) { this.name = name; } public Prototype CreateClone() { ConcreatePrototype c = new ConcreatePrototype(); c.name = this.name; return c; } } } |