Pattern GoF e Sviluppo Software

Oltre 20 anni fa è stato pubblicato per la prima volta il bestseller iconico Design Patterns: Elements of Reusable Object-Oriented Software (Elementi per il riuso di software ad oggetti).
Barra Servizi

Cosa sono i design patterns?

I design patterns, letteralmente modelli di progettazione, sono un potente strumento per gli sviluppatori di software: forniscono, infatti, soluzioni ai comuni problemi di progettazione.

I modelli di progettazione sono generalmente volti a risolvere i problemi della generazione e dell’interazione degli oggetti, piuttosto che i problemi dell’architettura software complessiva.

I 23 design patterns della GoF

I design patterns della Gang of Four sono divisi in quattro categorie: modelli creativi, strutturali e comportamentali.

I modelli creativi che forniscono modi per istanziare singoli oggetti o gruppi di oggetti correlati sono cinque:

  • Abstract Factory: fornisce a un client un insieme di oggetti correlati o dipendenti.
  • Builder: crea oggetti complessi con parti costitutive che devono essere create nello stesso ordine o utilizzando un algoritmo specifico.
  • Factory Method: sostituisce i costruttori di classi, astraendo il processo di generazione dell’oggetto in modo che il tipo dell’oggetto istanziato possa essere determinato in fase di esecuzione.
  • Prototype: crea un’istanza di un nuovo oggetto copiando tutte le proprietà di un oggetto esistente, creando un clone indipendente.
  • Singleton: questo modello assicura che venga creata solo un’istanza di un oggetto.

I modelli strutturali che forniscono un modo per definire le relazioni tra classi o oggetti sono sette:

  • Adapter: consente a due classi incompatibili di lavorare insieme.
  • Bridge: è utilizzato per separare gli elementi astratti di una classe dai dettagli d’implementazione.
  • Composite: è usato per creare strutture ad albero gerarchiche e ricorsive di oggetti correlati.
  • Decorator: consente di aggiungere o rimuovere funzionalità dell’oggetto senza modificarne l’aspetto esterno o la funzione.
  • Facade: è usato per fornire un’interfaccia semplice a un oggetto sottostante più complesso.
  • Fliweight: riduce la memoria e l’utilizzo delle risorse per modelli complessi.
  • Proxy: fornisce un’interfaccia segnaposto a un oggetto sottostante per controllare l’accesso e ridurre la complessità.

I modelli comportamentali che definiscono le modalità di comunicazione tra classi e oggetti, infine, sono undici:

  • Chain of Responsibility: stabilisce una catena all’interno di un sistema, in modo che un messaggio possa essere gestito al livello in cui è stato ricevuto per la prima volta.
  • Command: trasforma una richiesta in un oggetto autonomo che contiene tutte le informazioni sulla richiesta stessa.
  • Interpreter: aiuta a convertire le informazioni da un linguaggio in un altro.
  • Iterator: è usato per fornire un modo standard per attraversare un gruppo di oggetti.
  • Mediator: semplifica la comunicazione tra gli oggetti.
  • Memento: contiene un’istantanea dello stato di un oggetto, in modo che l’oggetto possa tornare al suo stato originale senza dover rivelare il suo contenuto.
  • Observer: consente a un componente di trasmettere messaggi in modo flessibile ai destinatari interessati.
  • State: permette a un oggetto di alterare il suo comportamento in relazione ai cambiamenti del suo stato interno.
  • Strategy: definisce una famiglia di algoritmi e li rende intercambiabili.
  • Template method: definisce i passaggi di base di un algoritmo e consente la modifica dell’implementazione dei singoli passaggi.
  • Visitor: separa un algoritmo da una struttura di oggetti spostando la gerarchia dei metodi in un oggetto.

Leggi anche questi articoli

Regola dell’80/20: come aumentare il lifetime value cliente e far crescere il business

La regola dell’80/20 – meglio nota come principio di Pareto – insegna che l’80 % dei risultati dipende dal 20 % delle cause. Applicata al marketing...

Chi è Labubu? Il pupazzo POP MART che ha conquistato TikTok e le star del K-Pop

I Labubu sono i pupazzi virali del momento: dalle code chilometriche davanti agli store POP MART fino ai video che spopolano su TikTok, questi piccoli...

Pubblicità su WhatsApp: come funzionerà, dove apparirà e cosa cambia davvero

La pubblicità su WhatsApp non è più una suggestione futuristica, ma una novità concreta e destinata a cambiare – almeno in parte – l’esperienza utente...
CHIAMA SCRIVICI