Patrón Template method
Lectura de ~3 minutos
Define la estructura de un algoritmo en una operación, delegando los detalles de implementación a las subclases.
Aplicabilidad
-
Se implementa la parte invariante de un algoritmo una vez y se delega en subclases la parte variante.
-
Se unifica comportamiento de subclases a fin de evitar código duplicado.
Esctructura
Se define una clase abstracta que contiene un método con la parte invariante del algoritmo a ejecutar y metodos abstractos que definirán las subclases correspondientes. Dichas subclases deben implementar los detalles variantes del algoritmo.
Consecuencias
-
Facilita el control inverso
-
Es fácil olvidar qué metodos se deben sobreescribir, por lo que es aconsejable reducirlos al mínimo.
-
Es importarte señalar en la clase abstracta qué metodos se puede sobreescribir y qué metodos se deben sobreescribir.
Como de costumbre aquí un pequeño ejemplo en Net core.
Nos vemos en las próximas líneas.