Che cosa sono i Desing Patterns?

Sono soluzioni generiche che funzionano in situazioni specifiche, servono per aiutarre gli sviluppatori a riutilizzare dei modelli di programmazione che renderanno il codice robusto, flessibile e facile da estendere.

In questo corso analizzeremo e applicaremo 7 design patterns con esempi completi di como si utilizzano e ti aiuterò a trovare la maniera di usarli.

Gli argomenti di cui si parlerá sono:

  1. Che cosa sono i design patterns?
  2. Design Patterns
  3. Strategy Pattern
  4. Observer Pattern
  5. Decorator Pattern
  6. Signleton Pattern
  7. State Pattern
  8. Collection Pattern
  9. Factories

DESIGN PATTERNS

Il lavoro del programmatore consiste spesso e volentieri in aggiungere o ristrutturare codice pre-esistente o in quello di creare dei moduli che poi devono essere integrati in una struttura più complessa.

Fortunatamente molte situazioni in cui ci possiamo trovare possono essere inglobate in soluzioni che sono già pronte per essere usate e che garantizzano un eccellente risultato perchè migliaia di programmatori li hanno giá utilizzati con successo nei loro progetti e ne hanno validato la loro efficienza.

Per trarre il massimo vantaggio dai design patterns bisogna conoscerli a fondo e sapere come funzionano per poterli visualizzare e mettere in pratica nei vostri progetti.

Che cosa sono?

Sono soluzioni completamente testate per problematiche che si possono incontrare sviluppando software e rispondono alle piú elevate esigenze:

  1. Flessibilitá, è facile modificare la soluzione attuale?
  2. Estensibilitá, è possibile aggiungere moduli o nuove caratteristiche?
  3. Adattabilità, il sistema di puó adattare senza che bisogni creare un nuovo progetto da zero?

I design patterns non sono specifici per un determinato tipo di software o di settore come per esempio non ne abbiamo uno per il mondo del trading e uno per soluzioni di gestione di dati, bensì sono generici e sta al programmatore saperli adattare per le diverse esigenze.

Per esempio se ti trovi a scrivere un programma per gestire un gruppo di entitá che hanno bisogno di essere notificate in caso cambi qualcosa nello stato di una entitá esterna allora prima di iniziare a analizzare il problema e scrivere del codice, possiamo vedere se é possibile applicare un design pattern a questo problema ed avere una soluzione robusta, estendibile e adattabile.

Probabilmente dopo aver investigato e provato a disegnare una soluzione per questo problema si scopre che esiste un design pattern chiamato “Observer Design Pattern” che ci da la risposta su un piatto d’argento.

Ovviamente la soluzione fornita dal “Observer Design Pattern” è generica e bisogna adattarla al contesto specifico della nuova feature che dobbiamo implementare, però ci traccia la via corretta per farlo, e questo ci fa risparmiare molto tempo perchè sappiamo che seguendo questa blueprint otterremo il risultato aspettato.

La storia dei design patterns risale agli anni ‘80 quando furono introdotti per la prima volta da Christopher Alexander e con il tempo molti programmatori hanno contribuito alla loro creazione e ne sono stati introdotti 23 tipi di cui parleremo in questo corso.

Il mio goal è trasmettervi nella maniera chiara possibile il loro funzionamento di modo che li possiate applicare come soluzioni ai vostri problemi.

1) Strategy Pattern, a cosa server e come si usa?