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

Template method Diagram

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.

Escrito el 13/12/2018