I principi s.o.l.i.d. - conclusioni

I principi S.O.L.I.D – DIP

L’ultimo principio S.O.L.I.D. è il  Dependency Inversion Principle (D).

Questo principio rappresenta la separazione tra i moduli/classi di alto livello rispetto ai moduli/classi di basso livello. In pratica, tutto dovrebbe dipendere da astrazioni e non dalle loro implementazioni.

Possiamo considerare i metodi/classi di basso livello come la parte core delle nostre applicazioni: si occupano di effettuare, ad esempio,  letture/scrittura su database, accesso ai dati e persistenza su file. I moduli/classi di alto livello implementano la parte di Business Logic, ovvero la logica dell’applicazione.

Se un modulo/classe di alto livello ha una dipendenza da moduli/classi di basso livello o da qualche altra classe (conoscendone ad esempio dipendenze e relative interzioni) si dice che è fortemente accoppiato.  Questo forte accopiamento aumenta sensibilmente il rischio che la modifica dell’implementazione di una particolare classe possa richiedere modifiche anche alle classi che ne fanno uso. Per questa ragione, si devono realizzare dipendenze solo con astrazione e non con le implementazioni.

Supponiamo di voler implementare una classe che consenta di effettuare il log di un determinato messaggio:

Come si può osservare il costruttore della classe accetta come parametro un oggetto che implementa la classe ILogger. All’interno del metodo LogException viene richiamato il metodo LogMessage della classe che implementa l’interfaccia ILogger:

Ad esempio possiamo definire le seguenti classi :

In questo modo abbiamo disaccopiato la classe ExceptionLogger dalle implementazioni della classi DbLogger e FileLogger. Inoltre abbiamo realizzato un sistema modulare: una nuova classe che implementa l’interfaccia ILogger può essere utilizzata per loggare in un diverso formato/sistema.

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.