Patrón Prototype

PUBLICADO: 2026-08-16
AUTOR: MANUEL PRIETO
Patrones de Diseño

💡 Ver Caso Práctico: Ejemplo Práctico del Patrón Prototype

Prototype es un patrón de diseño creacional que permite copiar objetos existentes sin que el código dependa de sus clases concretas, delegando la lógica de clonación al propio objeto.

Propósito y Caso de Uso

Utiliza Prototype cuando crear un objeto desde cero sea costoso (consultas a base de datos, cálculos pesados, configuración compleja) y ya tengas una instancia similar disponible que solo requiere pequeños ajustes. También es útil cuando quieres evitar una jerarquía paralela de fábricas (Factory Method) solo para producir copias.

Estructura del Patrón

  1. Prototipo (Interfaz): Declara el método clone().
  2. Prototipo Concreto: Implementa clone(), copiando sus propios campos (incluyendo copia profunda de objetos anidados si aplica).
  3. Cliente: Solicita una copia a un prototipo existente en lugar de instanciar new directamente.
Cargando diagrama...

Flujo de Funcionamiento

  1. Solicitud: El cliente llama a clone() sobre un objeto prototipo ya configurado.
  2. Copia: El objeto crea una nueva instancia de sí mismo, copiando sus valores actuales (copia profunda cuando hay estructuras anidadas mutables).
  3. Personalización: El cliente ajusta solo los campos que difieren de la copia, sin repetir la configuración común.

Ejemplos de Implementación Reales

Cuándo NO usarlo

Si construir el objeto es barato y no comparte configuración con otros, clonar añade complejidad de copia profunda innecesaria (YAGNIGlosarioYAGNI (You Aren't Gonna Need It)Principio de Extreme Programming (XP) que establece que un programador no debe añadir funcionalidad hasta que sea estrictamente necesario. Su objetivo es evitar la sobre-ingeniería (over-engineering), previniendo código para funcionalidades hipotéticas.Ver término completo →); usa un constructor normal o Factory Method.