Incapsulamento (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
stile
stile
Riga 16:
I termini incapsulamento e occultamento delle informazioni (''information hiding'') vengono spesso usati come sinonimi, anche se, a rigore, esiste una differenza concettuale: l'occultamento delle informazioni è il principio teorico su cui si basa la tecnica dell'incapsulamento. Secondo il concetto dell'occultamento delle informazioni i dettagli implementativi di una [[classe (informatica)|classe]] – o di un costrutto di altro tipo ([[oggetto (informatica)|oggetto]], [[modularità|modulo]], ecc.) – sono nascosti all'utente. Pertanto una parte di un programma può nascondere informazioni incapsulandole in un costrutto dotato di interfaccia, permettendone l'occultamento. Tuttavia l'incapsulamento non è garanzia dell'occultamento delle informazioni, poiché potrebbe – se mal utilizzato o per motivi particolari – non nascondere i dettagli implementativi.
 
L'incapsulamento riduce il costo da pagare per correggere gli errori in fase di sviluppo di un programma. Questo risultato viene ottenuto strutturando l'intero progetto, ed i moduli che lo compongono, in modo che un'errata decisione presa nell'implementazione di un singolo modulo non si ripercuota sull'intero progetto, e possa essere corretta modificando soltanto quel modulo. Si potrà così evitare di dover modificare anche i moduli ''clienti'', che interagiranno con il modulo ''incapsulato'' soltanto attraverso ''interfacce''.
 
L'uso più frequente dell'incapsulamento è quello di nascondere lo strato fisico in cui vengono memorizzati i dati; in tal modo, se la rappresentazione interna dei dati cambia, le modifiche si propagano soltanto ad una piccola parte del programma. Supponiamo, ad esempio, che un punto di uno spazio tridimensionale sia rappresentato dalle coordinate <math>x,y,z</math> espresse da tre [[Numero in virgola mobile|numeri in virgola mobile]], e che, successivamente, si passi ad una rappresentazione delle coordinate del punto mediante un singolo [[array]] a tre dimensioni: un modulo di programma progettato secondo la tecnica dell'incapsulamento proteggerà il resto del programma da questo cambiamento di rappresentazione.