Prototype: Clonación de Objetos
Copia objetos existentes sin depender de sus clases — clona configuraciones complejas en lugar de reconstruirlas desde cero.
Por qué importa
Algunos objetos son costosos de construir — requieren consultas a la base de datos, cómputo intensivo o docenas de campos de configuración. Cuando necesitas un segundo objeto casi idéntico, reconstruirlo desde cero es ineficiente y propenso a errores. El patrón Prototype da a cada objeto un método clone() — copias el objeto costoso y solo sobreescribes lo que difiere, sin conocer la clase concreta del objeto.
Copia profunda vs copia superficial
El detalle crítico en Prototype es asegurarse de que el clon sea verdaderamente independiente. Una copia superficial comparte referencias a objetos anidados — mutar el clon muta el original. Siempre copia en profundidad las estructuras anidadas mutables. En Python, dataclasses.replace() es superficial pero seguro para dataclasses planas. En TypeScript, el operador spread es superficial — para objetos anidados, copia cada nivel explícitamente o usa structuredClone().
💡Conclusión clave
Si crear un objeto es costoso y necesitas variaciones de uno existente, clónalo — Prototype evita repetir la configuración costosa.
🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.
Pista: Si crear un objeto es costoso y necesitas variaciones de uno existente, clónalo — Prototype evita repetir la configuración costosa.
✗ Tu versión