0

假设我们有一个具有 24 个 Long 类型字段的 DTO(一天中的每个小时一个)。大多数时候,我们需要所有字段都为零的 DTO 实例。我们现在正在做的事情看起来很长:

MyDTO day1 = new MyDTO();
day1.setQuantityHour1(new Long(0));
day1.setQuantityHour2(new Long(0));
day1.setQuantityHour3(new Long(0));
day1.setQuantityHour4(new Long(0));
...

包含已经提供的构造函数/工厂方法是否违反 DTO 模式?

4

3 回答 3

2

不,在这种情况下,我认为工厂方法(或者通常是创建模式)没有任何问题。通常,您需要某种创建模式来将对象的构造与其功能/业务逻辑分离。在您的情况下,作为 DTO,您可能没有业务逻辑,但如果您有一些复杂的构建规则,我认为这不会使使用创建模式变得不合适。在这种情况下,构建器模式甚至可以工作。如果构造足够简单,则将其放入构造函数中。

于 2013-09-25T06:20:10.793 回答
0

如果您long在 DTO 中使用原始类型 - 它们将自动使用 0L 初始化。

于 2013-09-13T08:34:52.270 回答
0

您可以将所有实例变量定义为原始数据类型 long。因此,当我们创建对象时,所有变量都会被初始化为 0。示例代码如下所示。包 org.smarttechie;

public class SampleDTO {
    private long quantityHour1;
    private long quantityHour2;
    public long getQuantityHour1() {
        return quantityHour1;
    }
    public void setQuantityHour1(long quantityHour1) {
        this.quantityHour1 = quantityHour1;
    }
    public long getQuantityHour2() {
        return quantityHour2;
    }
    public void setQuantityHour2(long quantityHour2) {
        this.quantityHour2 = quantityHour2;
    }
}
于 2013-09-13T08:40:35.677 回答