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 :
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 ?
- 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
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![]()
Partager