Immuable signifie ** immuable **. En d'autres termes, une classe immuable est une classe dont le contenu de l'instance ne change pas (= ne peut pas être réécrit). Réécrire une classe immudeable signifie recréer une instance (soyez prudent lorsque vous l'utilisez car les anciennes instances vont s'accumuler et la vitesse de traitement ralentira si des instances sont créées plusieurs fois au cours du traitement itératif. Je dois). Lors de l'utilisation d'une classe immuable, il est nécessaire de vérifier si le contenu a été modifié et si la valeur du type de référence est utilisée.
Étant donné que l'état des objets immuables ne change pas depuis la création, il n'est pas nécessaire de s'inquiéter de la modification de la valeur sous une forme involontaire pendant le traitement. Une classe immuable typique est la classe String.
Pour créer une classe immuable, les quatre conditions suivantes doivent être remplies.
** 1. Déclarez la classe comme finale **
** 2. Rendre tous les champs finaux et privés ** Déclarez la classe comme finale ou rendez le constructeur privé et instanciez-le avec une méthode de fabrique
** 3. Ne définissez pas le setter ** Déclarez la classe comme finale ou rendez le constructeur privé et instanciez-le avec une méthode de fabrique
** 4. Le champ ne contient pas de référence à un objet mmutable **
Fruits.java
public final class Fruits {
private final String color;
private final int amount;
public Fruits(String name, String, int age) {
this.name = color;
this.age = amount;
}
public String getColor() {
return color;
}
public int getAmount() {
return amount;
}
}
Toute tentative de modification entraînera une erreur.
FruitsTest.java
@Test
public void fruitsTest() {
final Person Fruits = new Fruits("Red", 28);
// error
// fruits.setColor("yellow");
// fruits.amount(30);
}
Recommended Posts