Questions sur les classes immuables (par rapport au tutoriel)
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 :
Citation:
- La classe doit être déclarée final (dans le cas contraire, il serait possible de modifier une instance par héritage)
- Tous les champs doivent être déclarés final
- La référence à this ne doit jamais être exportée
- 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 :)