2

我有以下问题:

框架从 DB 表生成一个类,每个表列都是类变量(字段)。生成的类有 30 多个字段,只有一个没有参数的构造函数。

要创建该类的实例,我必须使用一些 setter 30 次,这是对不一致的邀请。

我不能直接使用带参数的构造函数或 Builder 模式,因为我无法编辑生成的类。解决这个问题的最佳方法是什么 - 包装类、线程安全方法、经典模式?

4

3 回答 3

2

您可以创建一个外部Builder类,每当您创建一个新对象时,它将所有字段初始化为某个默认值,然后像标准Builder.

于 2012-07-24T12:31:23.600 回答
1

BeanBuilder我通过创建一个在内部使用反射的类为自己解决了这个问题。您给它您的 bean,然后调用类似startBean,value和类似的方法来为您的 bean 填充数据,就像构建 XML 树一样。

如果你喜欢类型安全,你可以为自己创建一个类似的类,专门用于你拥有的那个 bean。

于 2012-07-24T12:38:06.647 回答
0

您可以使用 Builder 模式。例如,如果您有Car带有字段power, weight,的对象maxSpeedcolor那么您可以像这样使用 Builder:

CarBuilder{
private Car car = new Car();

public CarBuilder(int power,int weight){
car.setPower(power);
car.setWeight(weight);
}

public CarBuilder setColor(String color){
car.setColor(color);
return this;
}

public CarBuilder setMaxSpeed(int maxSpeed){
car.setMaxSpeed(maxSpeed);
return this;
}

public Car build(){
return car;
}
}

您可以在 costructor 中设置必填字段,在 settters 中设置附加字段。您也可以在build方法中执行一些检查。

于 2012-07-24T12:38:55.073 回答