Principios y arquitectura / Patrones de diseño / Creacionales
Prototype
Notas originales de SunDiaL · Ver fuente en inglés
El problema: Necesitas duplicar un objeto. El problema adicional es que, para hacerlo, tienes que saber cómo, lo que implica conocer el tipo de la instancia (herencia) y tener acceso a los campos privados de la clase. La solución: Experto en información. ¿Qué clase es la más adecuada para resolver estos problemas? La propia clase.
public class PrototypeExample
{
private string somePrivateField;
public PrototypeExample Clone()
{
return new PrototypeExample
{
somePrivateField = this.somePrivateField;
}
}
}
.Net tiene una interfaz
ICloneablepara este propósito.