Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Modificare o espandere una classe?

Quando implementate classi altrui in un applicativo adattandole alle esigenze, la parola d'ordine è modificare o espandere?
Quando implementate classi altrui in un applicativo adattandole alle esigenze, la parola d'ordine è modificare o espandere?
Link copiato negli appunti

Davide è un mio amico programmatore che, a differenza della strada da me scelta, si è specializzato nella via della programmazione. Sviluppa principalmente in ambiente web oriented applicativi basati su diversi linguaggi di programmazione, primo tra tutti il PHP.

Come me, anche Davide è un amante della programmazione Object Oriented tanto da applicarla anche su PHP 4 nonostante i fedelissimi della versione PHP 5 assicurino che il confronto non esiste neppure lontanamente!

L'altro giorno mi chiama per fare una chiacchierata, così per concludere la settimana con un saluto. Gli chiedo come va sul lavoro, frase retorica perché oramai più giro il web più mi accordo che è più difficile trovare un buon programmatore libero che una donna disponibile! Davide se ne esce con un liberatorio: thanks God is Friday, segno che anche questa settimana non sa cosa fare prima!

Tra una chiacchiera e l'altra finiamo sull'argomento sviluppo e mi racconta che questa settimana è uscito pazzo nell'aggiornare un paio di classi core di un applicativo che aveva sviluppato qualche mese fa per un progetto molto importante.

Come me, anche Davide non ama inventare l'acqua calda, così neanche lui in certi casi non coglie l'occasione di usare quanto già  altri colleghi programmatori hanno sviluppato e reso pubblico alla comunità  del web. Il problema si pone quando modifichi le classi altrui per adeguarle alle tue esigenze e poi queste classi vengono aggiornate.

Stupito del problema, chiedo a Davide con un certo stupore... ma tu le classi le modifichi? Io le estendo! Lui mi guarda un po' come se fosse al telefono con un marziano e poi mi dice che in fondo in fondo non è una cattiva idea. Non che lui non conosca l'ereditarietà  di una classe, tutt'altro, solo non aveva mai pensato ad usarla in questo modo.

Per me sembra una cosa normale, considerando che mi evita di intervenire sulla struttura della classe core ogni qual volta che un programmatore aggiorna la sua classe. Realizzando una mia classe di livello superiore che estende la sua, automaticamente il mio codice è quasi indipendente dall'evoluzione della classe principale e mi consente di eseguire upgrade agevoli anche in caso di implementazioni di strutture differenti nei metodi della classe originale.

La telefonata con Davide non si è prolungata, lui doveva andare a casa ed io a prepararmi per un weekend al mare ma la curiosità  rimane. Modificare o espandere?

Ti consigliamo anche