Introducción: Receta fija
Template Method define el esqueleto de un algoritmo y deja algunos pasos a las subclases. El flujo general se mantiene constante.
Esto garantiza consistencia en procesos repetibles, con flexibilidad en los detalles.

Prompt: Recipe card with steps, minimal clean design.
1. Naturaleza: Ciclos repetibles
Los ciclos del día siempre siguen el mismo patrón, aunque cambien detalles.
El orden es fijo (amanecer, día, atardecer, noche), pero las condiciones específicas varían, igual que en un template.

Prompt: Day-night cycle illustration, soft gradient style.
2. Mundo Real: Recetas de cocina
La receta define pasos fijos, pero ingredientes o tiempos pueden variar.
El chef respeta la estructura, pero personaliza detalles: exactamente lo que hacen las subclases en Template Method.

Prompt: Minimal kitchen scene with recipe book, warm light.
3. Implementación en C#: Código Paso a Paso
public abstract class Bebida
{
public void Preparar()
{
HervirAgua();
AgregarIngrediente();
Servir();
}
protected void HervirAgua() => Console.WriteLine("Hervir agua");
protected void Servir() => Console.WriteLine("Servir");
protected abstract void AgregarIngrediente();
}
public class Te : Bebida
{
protected override void AgregarIngrediente() => Console.WriteLine("Agregar té");
}
4. Template Method vs Strategy
Template Method fija el flujo. Strategy intercambia algoritmos completos.
Si necesitas un esqueleto común con pasos variables, Template Method es ideal; si el algoritmo completo cambia, usa Strategy.
5. Diagrama UML

Prompt: UML diagram of Template Method pattern, clean vector layout.

Prompt: Step-by-step flow diagram, minimal infographic style.
⚠️ Cuándo NO Usar Template Method
- Si el flujo cambia demasiado o no hay pasos fijos.
- Si cada caso requiere un algoritmo totalmente distinto.
💪 Ejercicio
Crea una clase abstracta para exportar reportes con pasos comunes y variantes CSV/JSON.
Conclusión
Template Method garantiza consistencia con flexibilidad controlada. Es útil para procesos repetibles con variantes bien delimitadas.