This is an old revision of the document!
Contexto: Supongamos que estamos desarrollando una nómina de sueldos. En ella, tenemos una clase Funcionario
(Empleado), con dos subclases: FuncionarioPublico
(EmpleadoPúblico) y FuncionarioCLT
(EmpleadoCLT).
Problema: Queremos estandarizar un modelo (o template) para el cálculo de los sueldos en la clase base Funcionario, que luego pueda ser heredado por sus subclases. De este modo, las subclases solo tendrán que adaptar la rutina de cálculo de sueldos a sus particularidades. Más específicamente, las subclases sabrán exactamente qué métodos necesitan implementar para calcular el sueldo de un empleado.
Solución: El patrón de diseño Template Method resuelve el problema planteado. Este especifica cómo implementar el esqueleto de un algoritmo en una clase abstracta X, pero dejando pendientes algunos pasos —o métodos abstractos—. Estos métodos serán implementados en las subclases de X. En resumen, un Template Method permite que las subclases personalicen un algoritmo, sin cambiar su estructura general implementada en la clase base.