我正在使用POJO来创建和获取数据。这些 POJO 代表我们的 API,我们使用它们通过 REST Assured 进行测试。
我有一个包含 30 个变量的RequestDTO
类。由于这是一个 DTO,我在类中使用了 30 个 setter 方法来更新那里的值。
我用方法链调用这些 setter 方法,如下所示。我正在使用varList
变量从csv读取数据并提供给此DTO的数据。
然而,这看起来很笨拙,可读性较差且不正确。我想知道什么是好的方法/设计模式。因为我对最佳实践和设计模式的了解相当少。
示例代码:
public static void setRequestDTO(List<Object> varList) {
MyRequestDTO myrequest = new MyRequestDTO()
.setkey1(varList.get(0).toString())
.setkey2(varList.get(1).toString())
// ........
.setkey30(varList.get(30).toString());
}
首先,我相信你的 DTO 太臃肿了——真的没有其他方法可以把它分解成更小的类吗?
其次,您使用的是List<Object>
但所有示例都表明您使用的是 String 值 - 您是否有可能更改 List 的类型参数以消除对所有.toString
调用的需求?
第三,您在很大程度上依赖于您的List
包含您希望在 DTO 上设置的所有必要元素,并且它们都按正确的顺序排列。如果元素太少,这将导致引发异常。
最后,虽然我会考虑重构它,但我会给你留下一个你可以继续的想法。如果您决定保留当前的 DTO 结构,请考虑将List<Object>
放入构造函数中进行MyRequestDTO
,然后在其中执行所有 setter。这样,每当实例化此 DTO 的新实例时,您就不会有 30 行资源库,并且仅在实例化时设置这些值。