En este video explicare el patrón de diseño prototype deep en c# .Net, sis inconvenientes y su diferencia con el patrón de diseño prototype shallow.
Código
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 | public class Animal : ICloneable { public int Patas { get ; set ; } public string Nombre { get ; set ; } public Detalles Rasgos { get ; set ; } public object Clone() { Animal clonado = this .MemberwiseClone() as Animal; Detalles detalles = new Detalles(); detalles.Color = this .Rasgos.Color; detalles.Raza = this .Rasgos.Raza; clonado.Rasgos = detalles; return clonado; } } public class Detalles { public string Color { get ; set ; } public string Raza { get ; set ; } } //De esta manera se demuestra Animal oAnimal = new Animal() { Nombre = "Oveja Dolly" , Patas = 4 }; oAnimal.Rasgos = new Detalles(); oAnimal.Rasgos.Color = "Blanca" ; oAnimal.Rasgos.Raza = "Oveja" ; Animal oAnimalClonado = oAnimal.Clone() as Animal; oAnimalClonado.Rasgos.Color = "Negro" ; oAnimalClonado.Nombre = "Oveja negra" ; Console.WriteLine( "animal original: " +oAnimal.Rasgos.Color); Console.WriteLine( "annimal clonado: " +oAnimalClonado.Rasgos.Color); Console.WriteLine( "animal original: " +oAnimal.Nombre); Console.WriteLine( "animal clonado: " +oAnimalClonado.Nombre); |
Todos mis videos de patrones de diseño en C# .Net: https://www.youtube.com/watch?v=K902i_tsXl0&list=PLWYKfSbdsjJiiaXNIW1OYhRnStsyGvr6t