Toute une, merci de donner la diff entre Mutable objets et des objets Immuables exemple.
Réponses
Trop de publicités?Mutable objets ont des champs qui peuvent être modifiées, des objets immuables ont pas de champs qui peuvent être modifiées après la création de l'objet.
Très simple, immuable objet est un objet sans n'importe quel domaine. (Par exemple, un simple Comparateur de mise en Œuvre).
class Mutable{
private int value;
public Mutable(int value) {
this.value = value;
}
getter and setter for value
}
class Immutable {
private final int value;
public Immutable(int value) {
this.value = value;
}
only getter
}
Mutable objets peuvent avoir leurs champs changé après la construction. Des objets immuables ne peut pas.
public class MutableClass {
private int value;
public MutableClass(int aValue) {
value = aValue;
}
public void setValue(int aValue) {
value = aValue;
}
public getValue() {
return value;
}
}
public class ImmutableClass {
private final int value;
public MutableClass(final int aValue) {
//The value is set. Now, and forever.
value = aValue;
}
public final getValue() {
return value;
}
}
Immuable de l'Objet de l'état ne peut pas être modifié.
par exemple String
.
String str= "abc";//a object of string is created
str = str + "def";// a new object of string is created and assigned to str
Ils ne sont pas différents du point de vue de la JVM. Des objets immuables n'ont pas de méthodes qui peuvent modifier les variables d'instance. Et les variables d'instance sont privés; par conséquent, vous ne pouvez pas le modifier après l'avoir créé. Un exemple célèbre serait Chaîne. Vous n'avez pas de méthodes comme setString, ou setCharAt. Et s1 = s1 + "w" va créer une nouvelle chaîne, avec l'original abandonné. C'est ma compréhension.