【问题标题】:Populating large set of parameters with Setter methods使用 Setter 方法填充大量参数
【发布时间】:2020-07-07 10:06:16
【问题描述】:

我正在使用 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());
    }

【问题讨论】:

    标签: java rest-assured jsonschema2pojo


    【解决方案1】:

    首先,我认为您的 DTO 过于臃肿 - 真的没有其他方法可以将其分解为更小的类吗?

    其次,您使用的是 List&lt;Object&gt;,但所有示例都表明您使用的是字符串值 - 您是否有可能更改 List 的类型参数以消除对所有 @ 的需要987654322@电话?

    第三,您在很大程度上依赖于您的List,其中包含您希望在 DTO 上设置的所有必要元素并且它们都按正确的顺序排列。如果元素太少,这将导致抛出异常。

    最后,虽然我会考虑对其进行重构,但我会给您留下一个可以继续进行的想法。如果您决定保留当前的 ​​DTO 结构,请考虑将您的 List&lt;Object&gt; 放入 MyRequestDTO 的构造函数中,然后在其中执行所有设置器。这样一来,当您实例化此 DTO 的新实例时,您就没有 30 行 setter,而且您只需在实例化时设置这些值。

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 1970-01-01
      • 2018-12-16
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      相关资源
      最近更新 更多