Java Language Règles pour définir des classes immuables


Exemple

Les règles suivantes définissent une stratégie simple pour créer des objets immuables.

  1. Ne fournissez pas de méthodes "setter" - méthodes qui modifient les champs ou les objets auxquels les champs font référence.
  2. Rendez tous les champs définitifs et privés.
  3. Ne permettez pas aux sous-classes de remplacer les méthodes. La manière la plus simple de le faire est de déclarer la classe comme finale. Une approche plus sophistiquée consiste à rendre le constructeur privé et à construire des instances dans les méthodes d'usine.
  4. Si les champs d'instance contiennent des références à des objets mutables, ne permettez pas que ces objets soient modifiés:
  5. Ne fournissez pas de méthodes modifiant les objets mutables.
  6. Ne partagez pas les références aux objets mutables. Ne stockez jamais de références à des objets externes, mutables, transmis au constructeur; Si nécessaire, créez des copies et stockez les références aux copies. De même, créez des copies de vos objets internes mutables si nécessaire pour éviter de renvoyer les originaux dans vos méthodes.