Contenido del curso
Singleton
Factory
Abstract Factory
- 12

Qué es el patrón Abstract Factory
03:39 min - 13

Patrones de Diseño: Abstract Factory en Producción de Coches
04:20 min - 14

Implementación del patrón Abstract Factory en JavaScript
10:46 min - 15

Diferencias entre JavaScript y TypeScript en el patrón Abstract Factory
03:33 min - 16

Patrón Abstract Factory: Ventajas y Desventajas
06:00 min
Builder
- 17

Patrón Builder para crear objetos complejos
07:39 min - 18

Patrón Builder: Análisis de Diagrama y Clases Relacionadas
04:46 min - 19

Implementación del Patrón Builder en Producción de Coches
27:39 min - 20

Comparación del Patrón Builder en JavaScript vs TypeScript
03:38 min - 21

Patrón Builder: Ventajas, Desventajas y Aplicaciones Prácticas
07:00 min
Prototype
- 22

Patrón Prototype: Clonación de Objetos en Diseño de Software
Viendo ahora - 23

Diagrama UML del patrón Prototype explicado
01:55 min - 24

Implementación del Patrón Prototype en JavaScript
07:14 min - 25

Comparación de Prototype en JavaScript y TypeScript
06:08 min - 26

Patrón Prototype: Ventajas y Desafíos en Diseño de Software
05:43 min
Conclusiones
Patrón Prototype: Clonación de Objetos en Diseño de Software
Resumen
Crear copias exactas de objetos con configuraciones específicas es una necesidad frecuente en el desarrollo de software. El patrón Prototype resuelve este problema de forma elegante, permitiendo generar clones sin acoplar el código a clases concretas. Es el último patrón creacional y uno de los más intuitivos de comprender.
¿Qué es el patrón Prototype y cómo funciona?
El patrón Prototype es un patrón de diseño creacional que permite hacer clones de objetos existentes sin depender de clases concretas [0:25]. La idea central es simple: si tengo un objeto con cierta configuración y ciertas características, puedo obtener una copia exacta de él para modificarla o extenderla sin alterar el original.
Esto resulta especialmente útil cuando necesitamos una configuración base a partir de la cual realizar variaciones. En lugar de construir un objeto desde cero y repetir toda la configuración, simplemente clonamos el que ya existe y ajustamos lo necesario [0:37].
¿Por qué necesitamos prototipos en la producción de coches?
Para entender mejor el patrón, se plantea un escenario práctico dentro del contexto de producción de coches. Un nuevo requerimiento aparece: es necesario realizar pruebas de impacto sobre los vehículos antes de salir al mercado [1:00].
- Las pruebas no pueden realizarse con los autos listos para ser vendidos.
- Los coches no pueden salir al mercado si no pasan las pruebas de seguridad.
- Se decidió fabricar prototipos de prueba para cada modelo [1:10].
Modelos como Sedan Mastodon, Hatchback Mastodon, versiones CVT y versiones Signature necesitan ser clonados para verificar que cumplen los estándares. Se requiere una copia fiel de cada configuración para someterla a las pruebas correspondientes [1:20].
¿Cómo delega Prototype la creación de clones?
La solución que propone el patrón es delegar el proceso de generación de clones a los propios objetos [1:35]. A estos objetos se les denomina precisamente prototipos.
El mecanismo funciona así:
- Una clase tiene un método clone que retorna un nuevo objeto con la misma configuración de la instancia que invocó ese método [1:47].
- Si el objeto original tiene una propiedad
Acon valor1, al llamar aclonese genera una copia independiente con esa misma configuración, no una referencia al mismo objeto [1:55]. - Para implementar esto correctamente, se debe declarar una clase base o interfaz que todos los objetos clonables deben implementar [2:10].
Es importante distinguir entre copia y referencia. El método clone no devuelve el mismo objeto, sino una instancia nueva con valores idénticos. Esto garantiza que las modificaciones sobre el clon no afecten al original.
¿Qué elementos componen la estructura del patrón Prototype?
La estructura del patrón se compone de pocos elementos, lo que refuerza su sencillez:
- Interfaz o clase base clonable: define el contrato con el método
cloneque todos los objetos clonables deben cumplir. - Clases concretas: implementan el método
clone, creando y retornando una nueva instancia con la configuración actual. - Cliente: solicita clones sin necesidad de conocer la clase concreta del objeto que está clonando.
Esta separación permite que el código cliente trabaje con abstracciones. No importa si el objeto es un Sedan Mastodon o un Hatchback Mastodon; mientras implemente el método clone, puede ser prototipado.
El patrón Prototype demuestra que a veces la solución más efectiva es la más directa: si necesitas una copia, deja que el propio objeto se encargue de generarla. ¿Has tenido situaciones donde clonar objetos te habría simplificado el diseño? Comparte tu experiencia.