Un objet immuable dans la programmation, une fois que vous avez créé et initialisé il , ne peut jamais changer son état . Cela peut sembler contre-productif depuis le point de la programmation est de manipuler les données . Toutefois, par la conception de vos classes pour éliminer les endroits où leurs données peuvent changer , vous pouvez supprimer des catégories entières de problèmes potentiels de votre programme. Cela garantit que les données sont toujours valables et vos classes sont automatiquement thread-safe, et vous n'avez pas à vous soucier d'oublier d'initialiser les membres de votre classe. Choses que vous devez
environnement de développement intégré (IDE) comme Eclipse ou NetBeans
Afficher plus Instructions
1
Déclarez votre classe comme final:
class MyClass { public final
...
}
Cela empêche l'héritage de votre classe , ce qui peut nuire à son immuabilité .
2
Déclarez vos champs membres comme définitive :
...
privé leNombre final int ;
privé theName final String ;
...
Cela force le compilateur pour s'assurer que les champs de membres ne changent pas après l'initialisation
3
initialiser les champs de membres dans le constructeur : .
MyClass publique (int leNombre , String theName ) {
this.theNumber = leNombre ;
this.theName = theName ;
}
4
Ajouter méthodes pour obtenir permettre l'accès aux champs :
...
public int getTheNumber () { de leNombre de retour; }
getTheName public String () { de theName de retour; }
5
ajouter une logique de validation pour le constructeur afin de s'assurer qu'elle crée votre objet correctement . Par exemple, si votre code s'attend leNombre d'être toujours entre 0 et 100 , vous pouvez vérifier cela et lever une exception (travaux IllegalArgumentException ) .
MyClass publique (int leNombre , String theName ) {
< p > Si ( leNombre < =
this.theNumber = leNombre ;
this.theName = theName ;
}
Cette étape vous permet de savoir tout cas réels de votre classe sont valables .
6
Pour éviter l'ennui de initialisation de tous les domaines dans le constructeur de classes avec un grand nombre de champs de membres, remanier en plus petits " objets de paramètre . " en créant des petits objets qui contiennent les données dont vous avez besoin en groupes logiques , vous réduisez le nombre de paramètres dans la signature de votre constructeur , tout en conservant l'immutabilité .