Saltar la navegación

Recapitulando

Resumen de lo que vimos: 

  • Las plantillas y los ganchos se pueden utilizar en un framework para separar lo que se mantiene constante (frozenspot) de lo que varía (hotspots).
  • Las plantillas implementan lo que se mantiene constante, los ganchos lo que varía.
  • Se puede utilizar herencia o composición para separar la plantilla de los ganchos.
  • Si uso herencia, la plantilla se implementa en una clase abstracta y los ganchos en sus subclases (como el clásico patron Método Plantilla). Si uso composición, un objeto implementa la plantilla y delega la implementación de los ganchos en sus partes. 
  • Con herencia:
    • es mas simple para casos con pocas alternativas y/o pocas combinaciones
    • al implementar los métodos gancho puedo utilizar las variables de instancia y todo el comportamiento heredado de la clase abstracta
    • si hay muchas variantes o combinaciones, empiezo a tener muchas clases y duplicación de código
  • Con composición:
    • evita la duplicación de código y el creciente numero de clases cuando existen muchas alternativas y combinaciones posibles
    • al implementar los métodos gancho debo pasar como parámetro todo lo que necesiten - no tienen acceso a las variables de instancia del objeto
    • puedo cambiar el comportamiento en tiempo de ejecución sin mayor dificultad

Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0