Exemple #1
0
        static void PrototypeTester()
        {
            #region sample 1
            // 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);
            #endregion

            #region sample 2
            var colormanager = new ColorManager();

            // Initialize with standard colors
            colormanager["red"]   = new Color(255, 0, 0);
            colormanager["green"] = new Color(0, 255, 0);
            colormanager["blue"]  = new Color(0, 0, 255);

            // User adds personalized colors
            colormanager["angry"] = new Color(255, 54, 0);
            colormanager["peace"] = new Color(128, 211, 128);
            colormanager["flame"] = new Color(211, 34, 20);

            // User clones selected colors
            var color1 = colormanager["red"].Clone() as Color;
            var color2 = colormanager["peace"].Clone() as Color;
            var color3 = colormanager["flame"].Clone() as Color;
            #endregion
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Structural example:");
            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.WriteLine();

            Console.WriteLine("Real-world example:");
            ColorManager colormanager = new ColorManager();

            colormanager["red"]   = new Color(255, 0, 0);
            colormanager["green"] = new Color(0, 255, 0);
            colormanager["blue"]  = new Color(0, 0, 255);

            colormanager["angry"] = new Color(255, 54, 0);
            colormanager["peace"] = new Color(128, 211, 128);
            colormanager["flame"] = new Color(211, 34, 20);

            Color color1 = colormanager["red"].Clone() as Color;
            Color color2 = colormanager["peace"].Clone() as Color;
            Color color3 = colormanager["flame"].Clone() as Color;

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Prototype obj   = new ConcretePrototype1("1");
            Prototype clone = obj.Clone();

            obj   = new ConcretePrototype2("2");
            clone = obj.Clone();
        }
Exemple #4
0
        public static void Display()
        {
            Prototype prototype = new ConcretePrototype1(1);
            Prototype clone     = prototype.Clone();

            prototype = new ConcretePrototype2(2);
            clone     = prototype.Clone();
        }
Exemple #5
0
        void Operation()
        {
            Prototype prototype = new ConcretePrototype1(1);
            Prototype clone     = prototype.Clone();

            prototype = new ConcretePrototype2(2);
            clone     = prototype.Clone();
        }
Exemple #6
0
        public void Operation()
        {
            Prototype prototype1 = new ConcretePrototype1(1);
            Prototype clone1     = prototype1.Clone();

            Prototype prototype2 = new ConcretePrototype2(2);
            Prototype clone2     = prototype2.Clone();
        }
Exemple #7
0
        public void Create()
        {
            var p1 = new ConcretePrototype1("1");
            var p2 = new ConcretePrototype2("2", 123);

            // Clone the objects.
            var c1 = p1.Clone();
            var c2 = p2.Clone();
        }
    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);
    }
        // Prototype -> allows cloning of objects on the base of already created objects-prototypes. Gives technique for cloning
        // use when concrete type of new object has to be defined dynamically; when cloning is preferable to initialization;
        public void ClientPrototype()
        {
            Prototype prototype = new ConcretePrototype1(1);
            Prototype clone     = prototype.Clone();

            Console.WriteLine(clone.Id);
            prototype = new ConcretePrototype2(3);
            clone     = prototype.Clone();
            Console.WriteLine(clone.Id);
        }
Exemple #10
0
        static void Main(string[] args)
        {
            Prototype prototype = null;
            Prototype clone     = null;

            prototype = new ConcretePrototype1(1);
            clone     = prototype.Clone();

            prototype = new ConcretePrototype2(2);
            clone     = prototype.Clone();
        }
        [Test] public void TestClone()
        {
            var p1 = new ConcretePrototype1("I");
            var c1 = (ConcretePrototype1)p1.Clone();

            Assert.AreEqual(p1.Id, c1.Id);
            var p2 = new ConcretePrototype2("II");
            var c2 = (ConcretePrototype2)p2.Clone();

            Assert.AreEqual(p2.Id, c2.Id);
        }
        private static void FirstDemo()
        {
            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 );

  }
Exemple #14
0
        static void Prototype_Exemplo1()
        {
            var p1 = new ConcretePrototype1("I");
            var 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 Run()
        {
            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);
        }
Exemple #16
0
        public void DemoPrototypePattern()
        {
            Console.WriteLine("-----------------Prototype Pattern Example-----------------");
            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);
        }
Exemple #17
0
            private static void Test()
            {
                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);

                Console.ReadKey();
            }
Exemple #18
0
    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);
    }
        public static void PrototypeStructural()
        {
            // Create two instances and clone each

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

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

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

            Log.WriteLine("Cloned: {0}", c2.Id);
        }
Exemple #20
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);
        }
Exemple #21
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);
        }
    // 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 #23
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 #24
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 #25
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 #26
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 #27
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);
    }