可变类作为不可变类的子类
2022-09-04 07:19:14
我希望有像这样的不可变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;
}
}
虽然这在技术上很好,但我想知道它是否符合OOP和继承,可变性也是不可变的类型。我想避免为不可变对象抛出OOP犯罪,就像Java集合API所做的那样。UnsupportedOperationException
你觉得怎么样?还有其他想法吗?