Skip to main content

Qu'est-ce qu'un objet immuable?

Dans la programmation orientée objet, un objet immuable est un objet dont les propriétés ne peuvent pas être modifiées après sa création.La plupart des objets, en revanche, sont des objets mutables, ce qui signifie que certaines ou toutes leurs propriétés peuvent être librement modifiées après la création.Une variété de langages informatiques ont la capacité de créer des objets immuables, notamment Java, C ++, Erlang, Tcl et Scala.

Un objet immuable peut être créé de deux manières: en créant une classe qui est par définition immuable ou par explicitementdéclarant un objet autrement mutable étant immuable.La méthodologie pour créer une classe immuable varie en fonction du langage informatique utilisé.Quelle que soit la langue, une classe immuable ne doit avoir aucune méthode qui peut modifier ses données internes et aucun moyen de modifier les méthodes et Mdash;c'est-à-dire remplacé ou surchargé mdash;d'une manière qui changerait ses données internes.C'est la plus compliquée des deux approches.Un moyen rapide de rendre une classe immuable dans Java est de déclarer la classe, ainsi que toutes ses méthodes et membres de données, final.Une stratégie similaire peut également être utilisée dans C ++ avec le mot-clé const.Ces approches, en fonction du contenu de la classe, pourraient cependant ne pas être les meilleures.En général, les objets peuvent généralement être rendus immuables par un maintien minutieux de leurs données internes.

Faire un objet immuable en utilisant un mot-clé, comme dans l'exemple ci-dessus, est souvent beaucoup plus facile que d'écrire une classe entière pour être immuable.L'utilisation de cette approche, cependant, a ses dangers.Lors de la désignation explicite d'un objet immuable de cette manière, il est important que le programmeur soit sûr que toutes les propriétés et données appropriées ont d'abord été incorporées dans l'objet.S'appuyer sur un objet incomplet peut être dangereux, en particulier s'il manque une information essentielle.

Si un objet est mutable mais nécessite des données immuables correctement, les données immuables doivent être initialisées avant que l'objet mutable puisse être fait.Les objets immuables sont toujours immuables, qu'il s'agisse de valeurs de données ou d'objets importants, et doivent toujours être traités comme tels.En général, un objet immuable ne peut pas être fait mutable après sa création, bien qu'ils puissent parfois être copiés comme objets mutables.Il peut généralement être supposé qu'un objet immuable et l'une de ses copies sont également immuables, ce qui peut empêcher les données ou les problèmes de mémoire.