Incapsulamento (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m RB
Riga 3:
==Utilizzo==
 
I termini ''incapsulamento'' e ''information hiding'' (letteralmente ''"occultamento delle informazioni"'') vengono spesso usati come sinonimi, anche se, a rigore, esiste una differenza concettuale: l'information hiding è il ''principio teorico'' su cui si basa la ''tecnica'' dell'incapsulamento. Secondo il concetto di information hiding i dettagli implementativi di una classe - o di un costrutto di altro tipo (oggetto, modulo, ecc) - sono nascosti all'utente. Pertanto una parte di un programma può nascondere informazioni ''incapsulandole'' in un costrutto dotato di interfaccia, permettendo l'information hiding. Tuttavia l'incapsulamento non è garanzia di information hiding, poiché potrebbe - se mal utilizzato o per motivi particolari - non nascondere i dettagli implementativi.
Mettiamo il caso, ad esempio, che un punto di uno spazio tridimensionale sia rappresentato dalle coordinate '''x,y,z''' espresse da tre valori [[Scalare|scalari]] 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.
 
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''.
 
MettiamoL'uso ilpiù casofrequente 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 '''x,y,z''' espresse da tre valori [[Scalare|scalari]] 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.
 
==Esempi==