Skip to main content

Cos'è un oggetto immutabile?

Nella programmazione orientata agli oggetti, un oggetto immutabile è un oggetto le cui proprietà non possono essere modificate dopo che è stata creata.La maggior parte degli oggetti, al contrario, sono oggetti mutabili, il che significa che alcune o tutte le loro proprietà possono essere cambiate liberamente dopo la creazione.Una varietà di linguaggi per computer ha la capacità di creare oggetti immutabili, tra cui Java, C ++, Erlang, TCL e Scala.

Un oggetto immutabile può essere creato in due modi: creando una classe che è per definizione immutabile o esplicitaDichiarare un oggetto altrimenti mutabile per essere immutabile.La metodologia per la creazione di una classe immutabile varia a seconda del linguaggio del computer utilizzato.Indipendentemente dalla lingua, una classe immutabile non deve avere metodi in grado di modificare i suoi dati interni e non per essere modificati i metodi e mdash;cioè sovraccarico o sovraccarico mdash;in un modo che cambierebbe i suoi dati interni.Questo è il più complicato dei due approcci.Per creare un oggetto immutabile da un oggetto altrimenti mutabile, d'altra parte, si può spesso applicare una parola chiave per designare l'oggetto come immutabile.

Come esempio, la creazione di oggetti immutabile in Java si basa fortemente sulla parola chiave finale.Un modo rapido per rendere immutabile una classe in Java è dichiarare la classe, nonché tutti i suoi metodi e membri di dati, Final.Una strategia simile può essere utilizzata anche in C ++ con la parola chiave const.Questi approcci, a seconda del contenuto della classe, potrebbero non essere i migliori.In generale, gli oggetti di solito possono essere resi immutabili mediante un'attenta manutenzione dei loro dati interni.

La creazione di un oggetto immutabile usando una parola chiave, come nell'esempio sopra, è spesso molto più semplice che scrivere un'intera classe per essere immutabile.L'uso di questo approccio, tuttavia, ha i suoi pericoli.Quando si designano esplicitamente un oggetto immutabile in questo modo, è importante che il programmatore sia sicuro che tutte le proprietà e i dati appropriati siano stati incorporati prima nell'oggetto.Fare affidamento su un oggetto incompleto potrebbe essere pericoloso, in particolare se manca un'informazione essenziale.

Se un oggetto è mutabile ma richiede che i dati immutabili vengano creati correttamente, i dati immutabili devono essere inizializzati prima di poter effettuare l'oggetto mutabile.Gli oggetti immutabili sono sempre immutabili, siano essi valori di dati o oggetti di grandi dimensioni e devono sempre essere trattati come tali.In generale, un oggetto immutabile non può essere reso mutabile dopo che è stato creato, sebbene a volte possa essere copiato come oggetti mutabili.Di solito si può presumere che anche un oggetto immutabile e una qualsiasi delle sue copie siano immutabili, il che può prevenire i problemi di dati o di memoria.