public PrototypeClientA()
    {
        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);
    }
  public static void Main( string[] args )
  {
    // Create two instances and clone each
    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 );

  }
    void Start( )
    {
        // Create two instances and clone each

        ConcretePrototype1 p1 = new ConcretePrototype1("I");
        ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();

        Debug.Log("Cloned: " + c1.Id);

        ConcretePrototype2 p2 = new ConcretePrototype2("II");
        ConcretePrototype2 c2 = (ConcretePrototype2)p2.Clone();

        Debug.Log("Cloned: " + c2.Id);
    }
Exemple #4
0
        static bool TestPrototypePattern()
        {
            Console.WriteLine("TESTING THE PROTOTYPE PATTERN: ");

            var prototype = new ConcretePrototype1
            {
                Property1        = "A",
                Property2        = "B",
                PrototypeDetails = new PrototypeDetails {
                    Details = "'prototype' details"
                }
            };

            //New instance using the prototype
            var NewObject = prototype.Clone() as ConcretePrototype1;

            //Without using Deep copy, the next line whould change the same PrototypeDetails instance
            //used in 'prototype' and 'NewObject', since both would be using the same reference to this object instance
            NewObject.PrototypeDetails.Details = "New details for 'NewObject'";

            Console.WriteLine(prototype);
            Console.WriteLine(NewObject);
            //OUTPUT
            //Property1: A Property2:B PrototypeDetails:"'prototype' details"
            //Property1: A Property2:B PrototypeDetails:"New details for 'NewObject'"

            var prototype2 = new ConcretePrototype2
            {
                Property1        = "X",
                Property2        = "Y",
                OtherProperty    = "Z",
                PrototypeDetails = new PrototypeDetails {
                    Details = "'prototype2' details"
                }
            };

            //New instance using the prototype2
            var NewObject2 = prototype2.Clone() as ConcretePrototype2;

            NewObject2.PrototypeDetails.Details = "New details for 'NewObject2'";

            Console.WriteLine(prototype2);
            Console.WriteLine(NewObject2);
            //OUTPUT
            //Property1: X Property2:Y PrototypeDetails:"'prototype2' details" OtherProperty: Z
            //Property1:X Property2:Y PrototypeDetails:"New details for 'NewObject2'" OtherProperty: Z

            return(true);
        }
    // Entry point into console application.
    static void Main()
    {
        // Create two instances and clone each

        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);

        // Wait for user
        Console.ReadKey();
    }
Exemple #6
0
        //Прототип - Prototype
        public Run Prototype()
        {
            Console.WriteLine("\nPrototype:");

            // Create two instances and clone each
            Patterns.Creational.Prototype.Prototype p1 = new ConcretePrototype1("I");
            Patterns.Creational.Prototype.Prototype c1 = p1.Clone();
            Console.WriteLine("Cloned: {0}", c1.Id);

            Patterns.Creational.Prototype.Prototype p2 = new ConcretePrototype2("II");
            Patterns.Creational.Prototype.Prototype c2 = p2.Clone();
            Console.WriteLine("Cloned: {0}", c2.Id);

            return(this);
        }
Exemple #7
0
        private void prototypePatternBtn_Click(object sender, RoutedEventArgs e)
        {
            ConcretePrototype1 p1 = new ConcretePrototype1();

            p1.proto1Field = 10;

            ConcretePrototype2 p2 = new ConcretePrototype2();

            p2.proto2Field = 20;

            ConcretePrototype1 p11 = (ConcretePrototype1)p1.Clone();

            ConcretePrototype2 p22 = (ConcretePrototype2)p2.Clone();

            statusBarTB.Text = "proto 1: " + p11.proto1Field + ", proto 2: " + p22.proto2Field;
        }
Exemple #8
0
        public void PrototypePattern_TestCreationOfProtptypicalInstances()
        {
            // Arrange
            const string id1 = "I";
            const string id2 = "II";
            var          concretePrototype1 = new ConcretePrototype1(id1);
            var          concretePrototype2 = new ConcretePrototype2(id2);

            // Act
            var clonedConcretePrototype1 = (ConcretePrototype1)concretePrototype1.Clone();
            var clonedConcretePrototype2 = (ConcretePrototype2)concretePrototype2.Clone();

            // Assert
            Assert.AreEqual(id1, clonedConcretePrototype1.Id);
            Assert.AreEqual(id2, clonedConcretePrototype2.Id);
        }
Exemple #9
0
        // "Prototype"

        // "ConcretePrototype1"
        public void TestProtoTypePattern()
        {
            // Create two instances and clone each
            var p1 = new ConcretePrototype1("I");
            var c1 = (ConcretePrototype1)p1.Clone();

            Console.WriteLine("Cloned: {0}", c1.Id);

            var p2 = new ConcretePrototype2("II");
            var c2 = (ConcretePrototype2)p2.Clone();

            Console.WriteLine("Cloned: {0}", c2.Id);

            // Wait for user
            Console.Read();
        }
Exemple #10
0
        static void TestSample()
        {
            // Create two instances and clone each
            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);

            // Wait for user
            Console.ReadKey();
        }
Exemple #11
0
    private void Start()
    {
        // Create two instances and clone each

        ConcretePrototype1 p1 = new ConcretePrototype1("I");

        p1.nameNo = "p1";
        ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();

        c1.nameNo = "c1";
        Debug.Log("Cloned: " + c1.Id);
        Debug.Log("NameNo: " + p1.nameNo + " -------  " + c1.nameNo);

        ConcretePrototype2 p2 = new ConcretePrototype2("II");
        ConcretePrototype2 c2 = (ConcretePrototype2)p2.Clone();

        Debug.Log("Cloned: " + c2.Id);
    }
    static void Main(string[] args)
    {
        ConcretePrototype1 inst1 = new ConcretePrototype1()
        {
            Id   = 1,
            Name = "Jon Skeet"
        };
        ConcretePrototype2 inst2 = new ConcretePrototype2()
        {
            Id   = 2,
            Name = "Frodo Torbins"
        };
        ConcretePrototype1 copy1 = inst1.Clone();
        ConcretePrototype2 copy2 = inst2.Clone();

        Console.WriteLine(copy1.Name + "  " + copy1.GetType().Name);
        Console.WriteLine(copy2.Name + "  " + copy2.GetType().Name);
    }
Exemple #13
0
 protected ConcretePrototype2(ConcretePrototype2 proto2) : base(proto2)
 {
 }