我想编写对 bean 友好的类。我观察到一种趋势(主要是使用 bean)将所需参数从构造函数移动到设置器(并init()
在完成设置初始状态时使用方法)。
这个方法让我很担心,因为我希望我的类可以在没有 bean 基础结构的情况下使用,就像 Java 对象一样。正如我想象的那样,我必须在每个方法assert style中检查对象的正确状态。
上面的快速演示:
class A {
public int x;
public int y;
private int sum;
private boolean initialized = false;
public void init() {
sum = x + y;
initialized = true;
}
private void initCheck() {
if (!initialized) {
throw new IllegalStateException("Uninitialized object.");
}
}
public int getXMulSum() {
initCheck();
return x * sum;
}
public int getYMulSum() {
initCheck();
return y * sum;
}
}
有更好的做法吗?