このような不変のJavaオブジェクトが必要です(非常に単純化されています):
class Immutable {
protected String name;
public Immutable(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
場合によっては、オブジェクトを読み取り可能にするだけでなく変更可能にする必要があるため、継承によって可変性を追加できます。
public class Mutable extends Immutable {
public Mutable(String name) {
super(name);
}
public void setName(String name) {
super.name = name;
}
}
これは技術的には問題ありませんが、mutable が immutable 型でもあるということは、OOP と継承に準拠しているのだろうかと思います。UnsupportedOperationException
Java コレクション API のように、不変オブジェクトに対してスローされる OOP 犯罪を回避したいと考えています。
どう思いますか?他のアイデアはありますか?