Je veux avoir des objets Java immuables comme ceci (fortement simplifié):classe Mutable comme un enfant d'une classe immuable
class Immutable {
protected String name;
public Immutable(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Dans certains cas, l'objet ne doit pas seulement être lisible mais muable, pour que je puisse ajouter mutabilité par héritage:
public class Mutable extends Immutable {
public Mutable(String name) {
super(name);
}
public void setName(String name) {
super.name = name;
}
}
Bien que ce soit techniquement bien, je me demande si elle est conforme à la POO et l'héritage que mutable est également de type immuable. Je veux éviter le crime OOP pour lancer UnsupportedOperationException
pour un objet immuable, comme le fait l'API de collections Java.
Qu'en pensez-vous? D'autres idées?
C'est exactement ce que fait l'objectif C: 'NSMutableString' hérite de' NSString', 'NSMutableArray' hérite de' NSArray', etc. – Nefrubyr