Template Method Pattern

1.159 visite
Design patterns

Il Template Method Pattern è uno dei design pattern fondamentali utilizzato nella programmazione orientata agli oggetti grazie al quale possiamo definire la struttura di un algoritmo.

Questo pattern fa uso delle classi astratte che definiranno lo scheletro e le classi comuni del nostro algoritmo e le relative sottoclassi che ne definiranno l’implementazione.

Quindi il comportamento comune di più classi può essere fattorizzato in una classe per evitare di scrivere più volte lo stesso codice.

Un’immagine che può dare un aiuto a comprendere meglio questo pattern è la seguente:

Template Method

La più semplice realizzazione di un Template Method è data da 2 classi una classe AbstractClass e ConcreteClass.

L‘ AbstractClass o “classe template” potrà essere composta dalle seguenti tipologie di metodi astratti:

  • i metodi primitive astratte che le classi ConcreteClass che la estenderanno andranno a sovrascrivere e implementa il metodo template che rappresenta lo scheletro dell’algoritmo.
  • metodi hooks (gancio), ossia dei metodi che possono essere ridefiniti a piacere oppure ereditati e utilizzati così come sono, a discrezione della sottoclasse. Nell’algoritmo rappresentano delle opioni oppure implementazioni basilari che se necessario possono essere ridefinite nelle sottoclassi.
  • metodi non sovrascrivibili che vincolano le implementazioni delle sottoclassi ad utilizzare l’implementazione definita dalla classe astratta (per esempio in Java il metodo astratto sarà definito come final).

La classe ConcreteClass estenderà la classe astratta e rispettando i vincoli potrà completare lo sviluppo dell’algoritmo.

Ecco un ulteriore esempio reale di implementazione tramite UML:

TemplateMethodTeaCoffee

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.