Software design patterns

In Ingegneria del software, uno schema progettuale (o design pattern), inizialmente ideato dall’architetto Christopher Alexander, è una soluzione formalizzata, riutilizzabile e collaudata ad un problema comune o ricorrente durante processo di progettazione di un software.

Utilizzare design patterns già collaudati permette di sfruttare l’esperienza collettiva di progettisti esperti, promuovendo al contempo buone pratiche che aiutano a costruire software flessibili evitando documentazioni eccessive.

Cos'è la struttura Gang of Four (GoF)?

Un design pattern è tipicamente descritto da quattro elementi essenziali (Gang of Four o GoF):

  1. Nome: un’etichetta per identificare il pattern;
  2. Problema: descrive la situazione progettuale in cui il pattern è utile;
  3. Soluzione: descrive in modo astratto gli elementi (classi, oggetti) e le loro relazioni, per risolvere il problema;
  4. Conseguenze: i risultati e i compromessi (trade-off) che derivano dall’applicazione del pattern.