Glossario Design pattern

Soluzioni collaudate a problemi ricorrenti del software: pattern creazionali, strutturali e comportamentali, spiegati con esempi.

  • A

  • Abstract Factory

    Pattern creazionale che fornisce un'interfaccia per creare famiglie di oggetti correlati senza specificarne le classi concrete. Permette di cambiare intera famiglia di prodotti mantenendo il resto del codice invariato.
  • Active Record

    Pattern in cui un oggetto rappresenta una riga di tabella e incorpora i metodi per salvarsi, aggiornarsi ed eliminarsi. Semplifica l'accesso ai dati legando strettamente oggetto e record del database.
  • Adapter

    Pattern strutturale che converte l'interfaccia di una classe in un'altra attesa dal client, permettendo la collaborazione fra componenti altrimenti incompatibili. Funge da traduttore fra sistemi con contratti diversi, favorendo il riuso di codice esistente.
  • B

  • Bridge

    Pattern strutturale che separa un'astrazione dalla sua implementazione, così che le due possano variare in modo indipendente. Evita l'esplosione di sottoclassi quando esistono più dimensioni di variazione.
  • Builder

    Pattern creazionale che separa la costruzione di un oggetto complesso dalla sua rappresentazione, costruendolo passo dopo passo. È utile quando un oggetto ha molte parti o configurazioni opzionali.
  • C

  • Chain of Responsibility

    Pattern comportamentale che fa passare una richiesta lungo una catena di gestori, ciascuno dei quali può trattarla o inoltrarla. Disaccoppia chi invia da chi gestisce, rendendo flessibile la sequenza dei controlli.
  • Circuit Breaker

    Pattern che interrompe temporaneamente le chiamate verso un servizio che sta fallendo, per evitare di aggravarne il sovraccarico. Dopo una pausa riprova con cautela, migliorando la resilienza dei sistemi distribuiti.
  • Command

    Pattern comportamentale che incapsula una richiesta in un oggetto, così da poterla parametrizzare, accodare, registrare o annullare. È alla base delle funzioni di annullamento e delle code di operazioni.
  • Composite

    Pattern strutturale che compone oggetti in strutture ad albero per trattare in modo uniforme elementi singoli e loro aggregazioni. È ideale per rappresentare gerarchie come menu, file e cartelle.
  • CQRS

    Pattern che separa le operazioni di lettura da quelle di scrittura usando modelli distinti per interrogare e per modificare i dati. Consente di ottimizzare in modo indipendente i due percorsi in sistemi complessi.
  • D

  • Data Access Object (DAO)

    Pattern che isola in un oggetto dedicato l'accesso a una sorgente di dati, offrendo un'interfaccia astratta per le operazioni di lettura e scrittura. Separa la logica applicativa dai dettagli di persistenza.
  • Decorator

    Pattern strutturale che aggiunge dinamicamente responsabilità a un oggetto avvolgendolo in oggetti che condividono la stessa interfaccia. Offre un'alternativa flessibile all'ereditarietà per estendere le funzionalità, componibile in più livelli.
  • E

  • Event Sourcing

    Pattern che conserva lo stato di un sistema come sequenza di eventi anziché come istantanea corrente. Ricostruendo lo stato dagli eventi, offre una cronologia completa e la possibilità di rivedere il passato.
  • F

  • Facade

    Pattern strutturale che offre un'interfaccia semplificata e unificata verso un sottosistema complesso. Nasconde i dettagli interni, riducendo l'accoppiamento tra il client e le molte parti del sistema.
  • Factory Method

    Pattern creazionale che definisce un'interfaccia per creare oggetti delegando alle sottoclassi la scelta della classe concreta da istanziare. Disaccoppia il codice client dai tipi specifici, permettendo di introdurre nuovi prodotti senza modificare la logica che li utilizza.
  • Flyweight

    Pattern strutturale che condivide lo stato comune tra molti oggetti simili per ridurre l'occupazione di memoria. È usato quando servono grandissime quantità di oggetti quasi identici, come i caratteri in un documento.
  • Front Controller

    Pattern architetturale che convoglia tutte le richieste in un unico punto d'ingresso, che le smista ai gestori appropriati. È comune nei framework web per centralizzare autenticazione, instradamento e controlli.
  • I

  • Iterator (pattern)

    Pattern comportamentale che fornisce un modo uniforme per scorrere gli elementi di una collezione senza esporne la struttura interna. Permette di attraversare aggregati diversi con la stessa interfaccia.
  • M

  • Mediator

    Pattern comportamentale che centralizza in un oggetto mediatore le comunicazioni tra più componenti, che non si riferiscono più direttamente. Riduce l'accoppiamento e semplifica interazioni altrimenti intricate.
  • Memento

    Pattern comportamentale che cattura e conserva lo stato interno di un oggetto per poterlo ripristinare in seguito, senza violarne l'incapsulamento. È usato per implementare funzioni di annullamento e ripristino.
  • Model-View-Controller (MVC)

    Pattern architetturale che divide un'applicazione in modello dei dati, vista di presentazione e controllore della logica di interazione. Separa le responsabilità, favorendo manutenibilità e test.
  • Model-View-Presenter (MVP)

    Pattern architetturale, variante di MVC, in cui un presenter gestisce tutta la logica di presentazione e aggiorna una vista passiva. Rende la vista sottile e più facilmente testabile.
  • Model-View-ViewModel (MVVM)

    Pattern architetturale che introduce un view model tra vista e modello, esponendo dati e comandi a cui la vista si lega. È diffuso nelle interfacce moderne con associazione automatica dei dati.
  • N

  • Null Object

    Pattern che fornisce un oggetto dal comportamento neutro al posto di un riferimento nullo. Evita continui controlli sul valore nullo, rendendo il codice più lineare e meno soggetto a errori.
  • O

  • Object Pool

    Pattern creazionale che riutilizza un insieme di oggetti già pronti invece di crearli e distruggerli continuamente. Riduce il costo di allocazione, utile per risorse pesanti come connessioni o thread.
  • Observer

    Pattern comportamentale in cui un soggetto mantiene una lista di osservatori e li notifica automaticamente a ogni cambiamento di stato. Realizza una dipendenza uno-a-molti a basso accoppiamento, alla base di molti meccanismi a eventi e di aggiornamento delle interfacce.
  • P

  • Prototype (pattern)

    Pattern creazionale che crea nuovi oggetti clonandone uno esistente preso come modello, invece di costruirli da zero. È utile quando l'inizializzazione è costosa o la configurazione va replicata.
  • Proxy (pattern)

    Pattern strutturale che fornisce un sostituto di un altro oggetto per controllarne l'accesso. È usato per caricamento pigro, controllo dei permessi, memorizzazione dei risultati o accesso a oggetti remoti.
  • S

  • Saga (pattern)

    Pattern che gestisce transazioni distribuite come una sequenza di operazioni locali, ciascuna con la propria compensazione in caso di errore. Mantiene la coerenza tra servizi senza una transazione unica globale.
  • Service Locator

    Pattern che centralizza in un registro il reperimento dei servizi di cui un'applicazione ha bisogno. Disaccoppia i client dalle classi concrete, pur essendo talvolta criticato rispetto all'iniezione delle dipendenze.
  • State (pattern)

    Pattern comportamentale che permette a un oggetto di cambiare comportamento al variare del proprio stato interno, come se cambiasse classe. Sostituisce lunghe catene di condizioni con oggetti-stato distinti.
  • Strategy

    Pattern comportamentale che incapsula una famiglia di algoritmi intercambiabili dietro un'interfaccia comune, permettendo di selezionarli e sostituirli a runtime. Evita lunghe catene condizionali e isola le varianti di comportamento in classi distinte.
  • T

  • Template Method

    Pattern comportamentale che definisce lo scheletro di un algoritmo in un metodo, delegando alcuni passi alle sottoclassi. Fissa la struttura complessiva lasciando personalizzare singole fasi.
  • U

  • Unit of Work

    Pattern che tiene traccia delle modifiche agli oggetti durante un'operazione e le applica al database in un'unica transazione coerente. Riduce gli accessi e garantisce l'integrità dei cambiamenti correlati.
  • V

  • Visitor

    Pattern comportamentale che separa un'operazione dalla struttura di oggetti su cui agisce, permettendo di aggiungere nuove operazioni senza modificare le classi. È utile su gerarchie stabili con operazioni variabili.
Preferenze cookie

Gestisci i cookie usati su Glossario Italiano. Puoi modificare le preferenze in qualsiasi momento dal link "Gestisci preferenze" in fondo a ogni pagina.

  • Necessari
    Login, sicurezza (CSRF), preferenze cookie. Sempre attivi.
    Sempre on
  • Statistici
    Misurano in forma aggregata come viene usato il sito. Nessun profilo personale.
  • Marketing
    Cookie di reti pubblicitarie esterne, se attivati in futuro. Oggi GLS non usa script di terze parti e i nostri sponsor sono editoriali, non profilano.