2

我有一个遗留应用程序,它与不可变对象一起工作,这些对象在每个构造函数中创建时都会进行一些验证。每个对象都有自己的验证,f。前任。长度检查,范围检查等。

业务对象如下所示:

public class MyObject {
   private FieldA fieldA;
   private FieldB fieldB;
   ...
}

对象是通过调用加载数据的 cobol 服务器创建的……这段代码看起来很脏:

if (isFieldSet(response.getValueA())) {
   myObject.setFieldA(new FieldA(response.getValueA()));
}

if (isFieldSet(response.getValueB())) {
   myObject.setFieldA(new FieldA(response.getValueB()));
}

...

而且因为有很多对象,所以也有很多 if 语句。我可以使用反射改进它并动态创建类。

myObject.setFieldA(createField(A.class, response.getValueA()));
myObject.setFieldA(createField(B.class, response.getValueB()));

这使我的代码更好,但也慢得多。有人看到任何优雅的方法来解决这个问题吗?

问候,

麦克风

4

1 回答 1

0

如果我猜对了,你想摆脱这么多 If 语句。如果您使用一些接受响应并相应地返回输出的模板引擎,那不是很好吗?美妙之处在于模板中只能有一个 If 语句,该语句根据输入响应驱动对象创建逻辑。试试速度模板引擎

于 2012-10-04T09:43:48.767 回答