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

Il secondo principio S.O.L.I.D. è OSP che riporta “A software module/class is open for extension and closed for modification“.

Questo principio, afferma che nuove funzionalità possono essere aggiunte alla nostra classe/funzione, solo al momento che ce ne sia la reale necessità. Una volta terminati gli unit test sulla classe, non sarà più possibile modificarla (se non per fixare eventuali bug). La modifica può avvenire solo utilizzando l’ereditarietà.

Supponiamo ad esempio di definire una classe astratta:

Una classe astratta è una particolare classe con un’implementazione mancante o incompleta. Tutte le classi discendenti dalla classe astratta dovranno implementare al loro interno questa “mancanza”.

Implementiamo ad esempio le classi rettangolo e la classe cerchio nel seguento modo:

Come si può notare, entrambe implementano al loro interno la relativa funzione per calcolarne l’area.

Per realizzare una funzione “calcolatrice”, possiamo utilizzare la seguente funzione:

Come si può notare la funzione AreaCalculator, non necessita di essere modificata nel caso in cui venga implementata una nuova figura geometrica che eredita da Shape.

In questo modo, risultano soddisfatti sia il primo principio (SRP) sia il secondo (OSP).

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.

Un commento su “I principi S.O.L.I.D. – OSP”

I commenti sono chiusi.