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(); }
public static void Display() { Prototype prototype = new ConcretePrototype1(1); Prototype clone = prototype.Clone(); prototype = new ConcretePrototype2(2); clone = prototype.Clone(); }
void Operation() { Prototype prototype = new ConcretePrototype1(1); Prototype clone = prototype.Clone(); prototype = new ConcretePrototype2(2); clone = prototype.Clone(); }
public void Operation() { Prototype prototype1 = new ConcretePrototype1(1); Prototype clone1 = prototype1.Clone(); Prototype prototype2 = new ConcretePrototype2(2); Prototype clone2 = prototype2.Clone(); }
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); }
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 ); }
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); }
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); }
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(); }
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); }
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); }
//Прототип - 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(); }
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(); }
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; }
// "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(); }
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); }
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); }