Un design pattern fornisce una soluzione generale riutilizzabile per i problemi comuni che si verificano nella progettazione del software. Il modello mostra in genere relazioni e interazioni tra classi o oggetti. L’idea è di accelerare il processo di sviluppo fornendo un paradigma di sviluppo/progettazione ben collaudato e collaudato. I modelli di progettazione sono strategie indipendenti dal linguaggio di programmazione per risolvere un problema comune. Ciò significa che un modello di progettazione rappresenta un’idea, non una particolare implementazione., Utilizzando i modelli di progettazione è possibile rendere il codice più flessibile, riutilizzabile e gestibile.
Non è obbligatorio implementare sempre i modelli di progettazione nel progetto. I modelli di progettazione non sono pensati per lo sviluppo del progetto. I modelli di progettazione sono pensati per la risoluzione di problemi comuni. Ogni volta che c’è una necessità, è necessario implementare un modello adatto per evitare tali problemi in futuro. Per scoprire quale modello utilizzare. Devi solo cercare di capire i modelli di progettazione e i loro scopi. Solo allora, si sarà in grado di scegliere quello giusto.,
Obiettivo:
Comprendere lo scopo e l’utilizzo di ogni modello di progettazione. Quindi, sarai in grado di scegliere e implementare il modello corretto secondo necessità.
Esempio:
Ad esempio, in molte situazioni del mondo reale, vogliamo creare solo un’istanza di una classe. Ad esempio, può esserci un solo presidente attivo del paese alla volta indipendentemente dall’identità personale. Questo modello è chiamato un modello Singleton. Altri esempi di software potrebbero essere una singola connessione DB condivisa da più oggetti poiché la creazione di una connessione DB separata per ogni oggetto sarà costosa., Allo stesso modo, può esserci un singolo gestore di configurazione o gestore errori in un’applicazione che gestisce tutti i problemi invece di creare più gestori.
Tipi di modelli di progettazione
Ci sono principalmente tre tipi di modelli di progettazione:
- Creational
Questi modelli di progettazione riguardano l’istanziazione di classi o la creazione di oggetti. Questi modelli possono essere ulteriormente classificati in modelli creazionali di classe e modelli creazionali di oggetti., Mentre i modelli di creazione di classi utilizzano l’ereditarietà in modo efficace nel processo di istanziazione, i modelli di creazione di oggetti utilizzano la delega in modo efficace per portare a termine il lavoro.I modelli di progettazione creativa sono il metodo Factory, Abstract Factory, Builder, Singleton, Object Pool e Prototype.,
Use case of creational design pattern –
1) Supponiamo che uno sviluppatore voglia creare una semplice classe DBConnection per connettersi a un database e desideri accedere al database in più posizioni dal codice, in genere ciò che lo sviluppatore farà è creare un’istanza di classe DBConnection e usarla per eseguire operazioni di database ovunque richiesto. Il che si traduce nella creazione di più connessioni dal database poiché ogni istanza della classe DBConnection avrà una connessione separata al database., Per gestirlo, creiamo la classe DBConnection come classe singleton, in modo che venga creata una sola istanza di DBConnection e venga stabilita una singola connessione. Perché possiamo gestire la connessione DB tramite un’istanza in modo da poter controllare il bilanciamento del carico, le connessioni non necessarie, ecc.2) Supponiamo di voler creare più istanze di tipo simile e di voler ottenere un accoppiamento libero, quindi puoi andare per il modello di fabbrica. Una classe che implementa il modello di progettazione di fabbrica funziona come un ponte tra più classi. Si consideri un esempio di utilizzo di più server di database come SQL Server e Oracle., Se si sta sviluppando un’applicazione utilizzando il database SQL Server come back-end, ma in futuro è necessario modificare il database in oracle, sarà necessario modificare tutto il codice, in modo che i modelli di progettazione di fabbrica mantengano l’accoppiamento libero e la facile implementazione dovremmo andare in fabbrica per ottenere l’accoppiamento libero e la creazione di un tipo
- Structural
Questi modelli di progettazione riguardano l’organizzazione di classi e oggetti diversi per formare strutture più grandi e fornire nuove funzionalità.,I modelli di progettazione strutturale sono Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Private Class Data e Proxy.
Use Case Of Structural Design Pattern –
1) Quando 2 interfacce non sono compatibili tra loro e vogliono stabilire una relazione tra loro attraverso un adattatore, si chiama un modello di progettazione dell’adattatore. Adapter pattern converte l’interfaccia di una classe in un’altra interfaccia o classe che il client si aspetta, cioè adapter consente alle classi di lavorare insieme che altrimenti non potrebbero a causa di incompatibilità., quindi, in questo tipo di scenari incompatibili, possiamo andare per il modello di adattatore.
- Comportamentale
I modelli comportamentali riguardano l’identificazione di modelli di comunicazione comuni tra oggetti e la realizzazione di questi modelli.,I modelli comportamentali sono Catena di responsabilità, Comando, Interprete, Iteratore, Mediatore, Memento, Oggetto nullo, Osservatore, Stato, Strategia, Metodo del modello, Visitatore
Caso d’uso del modello di progettazione comportamentale –
1) Il modello di modello definisce lo scheletro di un algoritmo in un’operazione rimandando alcuni passaggi alle sottoclassi, il metodo del modello consente alle sottoclassi di ridefinire, Ad esempio nel tuo progetto vuoi che il comportamento del modulo sia in grado di estendersi, in modo tale che possiamo far sì che il modulo si comporti in modi nuovi e diversi man mano che cambiano i requisiti dell’applicazione o per soddisfare le esigenze di nuove applicazioni. Tuttavia, a nessuno è consentito apportare modifiche al codice sorgente, ad esempio è possibile aggiungere ma non è possibile modificare la struttura in quegli scenari in cui uno sviluppatore può avvicinarsi al modello di progettazione del modello.