CodeGym /Java Blog /Random-IT /Modelli di progettazione in Java [Parte 1]
John Squirrels
Livello 41
San Francisco

Modelli di progettazione in Java [Parte 1]

Pubblicato nel gruppo Random-IT
Questo è un breve articolo sui modelli di progettazione in Java. Non ci saranno implementazioni di pattern, solo un elenco di pattern in Java insieme a una breve descrizione di ciascuno. Per coloro che hanno già familiarità con l'argomento, questo sarà utile come revisione e riepilogo. Al contrario, coloro che stanno imparando a conoscere i modelli per la prima volta trarranno beneficio da questo come una panoramica iniziale dell'argomento prima di scavare più a fondo. Modelli di progettazione in Java [Parte 1] - 1 Modelli di progettazionesono soluzioni pronte all'uso per attività di programmazione frequenti. Non è una classe o una libreria che può essere collegata a un progetto. È qualcosa di più. In ogni caso specifico vengono implementati modelli di progettazione adatti a ciascun compito. Dovresti ricordare che se applicato in modo errato o a un'attività inadatta, un modello di progettazione può creare molti problemi. Tuttavia, un modello applicato correttamente può aiutarti a completare le attività in modo facile e semplice.

Tipi di modelli:

  • creazionale
  • strutturale
  • comportamentale
I modelli di creazione forniscono meccanismi di inizializzazione, che consentono di creare oggetti in modi convenienti. I modelli strutturali definiscono le relazioni tra classi e oggetti, consentendo loro di lavorare insieme. I modelli comportamentali vengono utilizzati per semplificare l'interazione tra entità.

Creativo:

  • Singleton: limita la creazione di una classe a una singola istanza e fornisce l'accesso a quella singola istanza.

  • Factory: utilizzato quando abbiamo una superclasse con più sottoclassi e dobbiamo restituire una sottoclasse in base all'input.

  • Fabbrica astratta: usa una super fabbrica per creare fabbriche, che poi usiamo per creare oggetti.

  • Builder: utilizzato per creare oggetti complessi utilizzando oggetti semplici. Crea gradualmente un oggetto grande da un oggetto piccolo e semplice.

  • Prototipo: aiuta a migliorare le prestazioni durante la creazione di oggetti duplicati; invece di creare un nuovo oggetto, crea e restituisce un clone di un oggetto esistente.

Strutturale:

  • Adattatore — un convertitore tra due oggetti incompatibili. Possiamo usare il modello dell'adattatore per combinare due interfacce incompatibili.

  • Composito: utilizza una classe per rappresentare una struttura ad albero.

  • Proxy: fornisce la funzionalità di un'altra classe.

  • Flyweight: riutilizza gli oggetti invece di creare un gran numero di oggetti simili.

  • Facciata: fornisce una semplice interfaccia per un client, che utilizza l'interfaccia per interagire con il sistema.

  • Bridge: rende classi specifiche indipendenti dalle classi che implementano un'interfaccia.

  • Decoratore: aggiunge nuove funzionalità a un oggetto esistente senza legarsi alla sua struttura.

Comportamentale:

  • Metodo modello: definisce un algoritmo di base e consente ai discendenti di eseguire l'override di alcuni passaggi dell'algoritmo senza modificarne la struttura complessiva.

  • Mediatore: fornisce una classe intermedia che gestisce tutte le comunicazioni tra classi diverse.

  • Catena di responsabilità: consente di evitare una stretta dipendenza tra il mittente e il destinatario di una richiesta; inoltre la richiesta può essere processata da più oggetti.

  • Osservatore: consente a un oggetto di monitorare e rispondere agli eventi che si verificano in altri oggetti.

  • Strategia: consente di modificare le strategie (algoritmi) in fase di esecuzione.

  • Comando: un'interfaccia che dichiara un metodo per eseguire un'azione specifica.

  • Stato: consente a un oggetto di modificare il proprio comportamento in base al proprio stato.

  • Visitatore: utilizzato per semplificare le operazioni su gruppi di oggetti correlati.

  • Interprete: definisce una grammatica per un linguaggio semplice nel dominio del problema.

  • Iteratore: accede in sequenza agli elementi di una raccolta senza conoscerne la forma sottostante.

  • Memento: utilizzato per memorizzare lo stato di un oggetto; questo stato può essere ripristinato in seguito.

Mentre segui il corso CodeGym, incontrerai un paio di schemi in questo elenco. Raccomando le seguenti attività sui modelli: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... L'uso saggio dei modelli di progettazione porta a una manutenzione del codice più affidabile, perché, oltre al fatto che i modelli di progettazione sono buone soluzioni a problemi comuni , altri sviluppatori possono riconoscerli, riducendo il tempo necessario per lavorare con un determinato codice.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION