Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Patrones de Diseño de Comportamiento

Template Method

Definir estructura del algoritmo en la superclase

Universidad Nacional de Rio Negro - Sede Andina

Definición

El patrón Template Method (Método Plantilla) es un patrón de diseño de comportamiento que define el esqueleto de un algoritmo en una operación, delegando algunos pasos a las subclases.

Este patrón permite que las subclases redefinan ciertos pasos de un algoritmo sin cambiar su estructura básica.

Origen e Historia

Formalizado por el GoF en 1994, el Template Method es una técnica fundamental en el diseño de frameworks. Se basa en el Principio de Hollywood: “No nos llames, nosotros te llamaremos”. En lugar de que la subclase controle el flujo, la superclase define el flujo y llama a los métodos de la subclase en los momentos adecuados.

Motivación

La motivación principal es evitar la duplicación de código en algoritmos que son estructuralmente idénticos pero difieren en detalles específicos. Al centralizar la estructura en la clase base, nos aseguramos de que todos los descendientes sigan el mismo proceso.

Contexto

Cuando aplica

Cuando no aplica

Consecuencias de su uso

Positivas

Negativas

Alternativas

Estructura

Diagramas

Diagrama de Clases

Diagrama de Secuencia

Ejemplos

/**
 * Clase base con el método plantilla.
 */
public abstract class ProcesadorMensajes {
    // El método plantilla es final para evitar que se cambie la estructura
    public final void procesar(String msg) {
        String limpio = limpiar(msg);
        enviar(limpio);
        registrar();
    }
    
    private String limpiar(String s) { return s.trim(); }
    
    // Paso delegado a las subclases
    protected abstract void enviar(String s);
    
    private void registrar() { System.out.println("Mensaje procesado."); }
}

/**
 * Subclase Concreta.
 */
public class ProcesadorEmail extends ProcesadorMensajes {
    @Override
    protected void enviar(String s) {
        System.out.println("Enviando email: " + s);
    }
}

Ejercicios

Resumen

El Template Method es el patrón de la “estructura compartida”. Es una herramienta poderosa para construir sistemas coherentes donde la lógica de alto nivel está protegida en la base, mientras que la flexibilidad de los detalles queda en manos de las especializaciones, logrando un balance ideal entre control y extensibilidad.

Próximo paso

Para seguir, conviene pasar a el material siguiente, donde el recorrido continúa sobre esta base.