Les objets immuables peuvent être utiles dans les applications multi-thread. Plusieurs threads peuvent agir sur des données représentées par des objets immuables sans se soucier que les données soient modifiées par d'autres threads. Les objets immuables sont donc considérés comme plus sûrs pour les threads que les objets mutables.
À quoi servent les objets immuables ?
Le recours maximal à des objets immuables est largement accepté comme une bonne stratégie pour créer un code simple et fiable. Les objets immuables sont particulièrement utiles dans les applications concurrentes. Puisqu'ils ne peuvent pas changer d'état, ils ne peuvent pas être corrompus par des interférences de thread ou observés dans un état incohérent.
Quels objets doivent être appelés immuables ?
Les objets immuables sont simplement des objets dont l'état (les données de l'objet) ne peut pas changer après la construction. Des exemples d'objets immuables du JDK incluent String et Integer. Les objets immuables simplifient grandement votre programme, puisqu'ils: sont simples à construire, à tester et à utiliser.
Comment implémenter un objet immuable ?
Pour créer un objet immuable, vous devez suivre quelques règles simples:
- Ne pas ajouter de méthode setter.
- Déclarer tous les champs final et privé.
- Si un champ est un objet mutable, créez-en des copies défensives pour les méthodes getter.
- Si un objet mutable passé au constructeur doit être affecté à un champ, créez-en une copie défensive.
Où allons-nousutiliser une classe immuable en Java?
Les classes immuables facilitent la programmation simultanée. Les classes immuables garantissent que les valeurs ne sont pas modifiées au milieu d'une opération sans utiliser de blocs synchronisés. En évitant les blocages de synchronisation, vous évitez les interblocages.