Skip to main content

Inicia sesión en CleanKata

Sigue tu progreso, gana XP y desbloquea todas las lecciones.

Al iniciar sesión aceptas nuestros Términos de uso y Política de privacidad.

Patrones de Diseño80 XP8 min

Template Method: Esqueleto del Algoritmo

Define el esqueleto de un algoritmo en una superclase, pero permite a las subclases sobrescribir pasos específicos sin cambiar su estructura.

Por qué importa

Cuando tienes varias clases que siguen el mismo algoritmo pero difieren solo en ciertos pasos, la tentación es copiar-pegar el esqueleto y ajustar las diferencias. Ahora tienes dos (o diez) copias del mismo flujo de control que mantener sincronizadas. Template Method resuelve esto con el truco más antiguo de la programación orientada a objetos: poner el esqueleto invariante en la clase base como método plantilla, declarar los pasos variables como abstractos y dejar que las subclases los implementen.

Template Method vs Strategy

Ambos patrones varían partes de un algoritmo, pero usan mecanismos diferentes. Template Method usa herencia — el esqueleto vive en el padre, las variaciones van en las subclases. Strategy usa composición — el esqueleto delega a un objeto strategy inyectado. Template Method es más simple pero menos flexible (no puedes cambiar el comportamiento en tiempo de ejecución); Strategy es más flexible pero requiere un objeto extra. Elige Template Method cuando el algoritmo es verdaderamente fijo y la subclasificación es natural.

💡Conclusión clave

Template Method es la herencia haciendo su único trabajo real: fijar la estructura, variar los detalles — el esqueleto permanece en el padre, la carne en la subclase.

🔧 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: Template Method es la herencia haciendo su único trabajo real: fijar la estructura, variar los detalles — el esqueleto permanece en el padre, la carne en la subclase.

✗ Tu versión