0

Long 型の 24 フィールド (1 日の各時間に 1 つ) を持つ 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 であるため、おそらくビジネス ロジックはありませんが、複雑なビルド ルールがある場合、Creational Pattern の使用が適切でなくなるとは思いません。この場合、Builder パターンが機能することもあります。構築が十分に単純な場合は、コンストラクターに入れます。

于 2013-09-25T06:20:10.793 に答える
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 に答える
0

DTO でプリミティブ型を使用する場合long、それらは自動的に 0L で初期化されます。

于 2013-09-13T08:34:52.270 に答える