Bonjour,

Je suis en train de lire le tutoriel de Romain Guy (Gfx), sur les classes et objets immuables.

Il cite les règles d'or à appliquer pour rendre sa classe immuable :
  1. La classe doit être déclarée final (dans le cas contraire, il serait possible de modifier une instance par héritage)
  2. Tous les champs doivent être déclarés final
  3. La référence à this ne doit jamais être exportée
  4. Tous les champs faisant référence à un objet non immuable doivent être privés, ne jamais être exportés, représenter l'unique référence à cet objet et ne jamais modifier l'état de l'objet
Pour le point n°3 : Lorsque l'auteur dit "La référence à this ne doit jamais être exportée", est-ce que cela signifie que la classe ne doit pas contenir de méthode avec return this ?
Parce qu'une fois qu'on aura créé une instance de classe immuable (ex: String), et qu'on aura créé des objets qui pointent dessus, ce sera comme si on pointait sur this de l'objet immuable ?

Pour le point n°4 : Lorsque l'auteur dit pour les champs "ne jamais être exportés", "ne jamais modifier l'état de l'objet" => Est-ce que cela signifie que la classe immuable ne doit pas contenir de getter et de setter ?


Merci