I Design Patterns sono classificati principalmente in tre categorie: Modello di progettazione creativa, Modello di progettazione strutturale e Modello di progettazione comportamentale. Questi differiscono tra loro in base al livello di dettaglio, complessità e scala di applicabilità all'intero sistema in fase di progettazione.
Esistono anche due tipi di modelli: idiomi e modelli architettonici. Ma non li esploreremo in questo tutorial.
Modello di progettazione creativa
Come suggerisce il nome, fornisce il meccanismo di creazione di oggetti o classi che migliora la flessibilità e la riusabilità del codice esistente. Riducono la dipendenza e controllano il modo in cui interagiamo con la nostra classe in modo da non dover affrontare la costruzione complessa. Di seguito sono riportati i vari design pattern del design pattern creazionale.
Fabbrica astratta- Ci permette di creare oggetti senza specificarne il tipo concreto.
Costruttore - Viene utilizzato per creare oggetti complessi.
Metodo di fabbrica - Ci consente di creare oggetti senza specificare la classe esatta da creare.
Prototipo - Viene utilizzato per creare un nuovo oggetto dall'oggetto esistente.
Singleton- Il modello di progettazione singleton garantisce che venga creata una sola istanza di un oggetto.
Modelli di progettazione strutturale
I modelli di progettazione strutturale sono principalmente responsabili dell'assemblaggio di oggetti e classi in una struttura più ampia, assicurandosi che queste strutture siano flessibili ed efficienti. Sono molto essenziali per migliorare la leggibilità e la manutenibilità del codice. Garantisce inoltre che le funzionalità siano adeguatamente separate e incapsulate. Riduce l’interfaccia minima tra cose interdipendenti.
Adattatore- Ci consente di far lavorare insieme due classi incompatibili avvolgendo un'interfaccia attorno a una delle classi esistenti.
composito - Avvolge un gruppo di oggetti in un singolo oggetto.
Ponte - Disaccoppia un'astrazione in modo che due classi possano variare in modo indipendente.
Decoratore - Estende dinamicamente il comportamento dell'oggetto in fase di esecuzione.
Facciata - Offre un'interfaccia semplice per oggetti sottostanti più complessi.
Peso mosca - Diminuisce il costo del modello di oggetti complessi.
Procura - Riduce i costi, riduce la complessità e fornisce l'interfaccia segnaposto a un oggetto sottostante per controllare l'accesso.
Modello di progettazione del comportamento
I Behavior Design Patterns sono responsabili del modo in cui una classe comunica con le altre.
Catena di responsabilità - Rappresenta il comando ad una catena di oggetti di elaborazione.
Comando - Genera gli oggetti che incapsulano le azioni dei parametri.
Interprete - Implementa un linguaggio specializzato.
Iteratore - Accede a tutti gli elementi di un oggetto in sequenza senza violare la sua rappresentazione sottostante.
Mediatore - Fornisce l'accoppiamento libero tra le classi essendo l'unica classe che ha una conoscenza dettagliata dei metodi esistenti.
Ricordo - Ripristina un oggetto nello stato precedente.
Osservatore - Consente a un numero di oggetti osservatori di vedere un evento.
Stato - Consente a un oggetto di modificare il proprio comportamento quando cambiano i suoi stati interni.
Strategia - Fornisce una delle famiglie di algoritmi da selezionare in fase di runtime.
Metodo modello - Consente alle sottoclassi di fornire un comportamento concreto. Definisce inoltre lo scheletro di un algoritmo come una classe astratta.
Visitatore - Separa un algoritmo da una struttura di oggetti spostando la gerarchia dei metodi in un unico oggetto.
ordinamento a bolle Java
Impareremo alcuni importanti modelli di progettazione nel prossimo tutorial.