static void Main(string[] args)
        {
            AbstractPrototype prototype1 = new ConcretePrototype1("One");
            AbstractPrototype clonePrototype1 = prototype1.Clone();

            AbstractPrototype prototype2 = new ConcretePrototype1("Two");
            AbstractPrototype clonePrototype2 = prototype2.Clone();

            Console.WriteLine("First prototype: {0}", prototype1.GetId());
            Console.WriteLine("First prototype copy: {0}", clonePrototype1.GetId());

            Console.WriteLine("Second prototype: {0}", prototype2.GetId());
            Console.WriteLine("Second prototype copy: {0}", clonePrototype2.GetId());

            Console.Read();
        }