3

次のうち、poco を実装するための最良の方法はどれですか?

オプション1:

public class PocoOption1
{
  public PocoOption1(int val1,string val2)
  {
    Val1=val1; Val2=val2;
  }

  public int Val1{get;private set;}
  public int Val2{get;private set;}
}

オプション 2:

public class PocoOption2
{           
  public int Val1{get;set;}
  public int Val2{get;set;}
}

各アプローチの潜在的な長所と短所は何ですか?? それは問題ですか?DTO は 1 回だけ設定する必要があると言う人もいます。それはルールですか、それとも単なる意見ですか??

4

2 に答える 2

3

次のようなことができる新しい C# 構文を使用します。

Customer customer =  new Customer{ Id = 1, 
     Name="Dave",                                             
     City = "Sarasota" };

オプション 2 を安全に使用できます。

こちらをご確認ください

于 2009-03-11T19:46:59.280 に答える
3

オプションが若干異なります。オプション 1 では、Val1、Val2 を 1 回だけ設定できます。オプション 2 では、これらの値を設定およびリセットできます。

一般的に、私はパブリック デフォルト コンストラクターのファンです。これにより、API がより簡単に使用できるようになります。これについては、Krzysztof Cwalina と Brad Abrams が Framework Design Guidelines ブックで詳しく説明しています。ハイライトは次のとおりです。

  • 「作成、設定、呼び出し」パターンを使用します。パラメーターのない既定のコンストラクターを用意します。次に、オブジェクトにプロパティを設定できるようにします (任意の順序で)。次に、メソッドの呼び出しを許可します。
  • デフォルトのコンストラクターは、オブジェクト構築の正規の方法です。これは、ユーザーが試す最初のオプションになります。
  • 構築時にユーザーにパラメーターの選択を強制するのは難しい場合があります。また、一部のパラメーターはオプションの場合があります。
  • オブジェクトを一定期間無効な状態にします。API の誤用を伝えるために例外をスローします。(オブジェクトに 2 つの依存関係がある場合、ユーザーが必要な設定なしでメソッドを呼び出そうとすると、InvalidOperationException がスローされます。)

私の意見では、オプション 2 が最適です。

于 2009-03-11T20:10:40.410 に答える