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

Comunicare il lusso: Strategie vincenti per un brand di scarpe Made in Italy sui social media

Nel raffinato universo del lusso, comunicare un brand di scarpe Made in Italy sui social media non significa semplicemente mostrare un prodotto:...

La SEO si fa social: come farsi notare (senza ballare su TikTok)

Quando si parla di SEO, il primo pensiero va ai motori di ricerca come Google. Tuttavia, negli ultimi anni, anche i social media sono diventati...

Hashtag: sì o no?

L’uso degli hashtag nei social media è ormai parte integrante della comunicazione online. Li trovi ovunque: nei post, nelle storie, nei video. Ma ti...
CHIAMA SCRIVICI