6

多くの場合、ドメイン オブジェクトをさまざまな方法で UI に表示する必要があります。リスト、検索結果、ページの表示と編集、ヘッダー、フッター、ポップアップ。通常、ドメイン オブジェクトのいくつかの異なる「ビュー」があり、それぞれに異なるフィールドが表示されます。

サブセットまたはスーパーセットが必要な場合は、DTO を使用してデータを取得することをお勧めします。DTO の維持には多くのオーバーヘッドがあります。各シナリオに必要なドメイン オブジェクトのプロパティを単純に入力するのは悪い方法ですか。たとえば、プロファイルを使用して、含める必要があるプロパティを指定できます。たとえば、次のようになります。

service.GetDomainObjects(int listID, Profile.ListProfile); service.GetDomainObjects(string searchParam, Profile.SearchProfile);

4

1 に答える 1

3

私にとって、これがどこにあるのかということは、オーバーヘッドをどこに置きたいかということです。DTO を表すさまざまなクラスのセットを用意するか、それぞれが同じドメイン オブジェクトを返すメソッドのセットを用意するかのどちらかです。さまざまなフィールドが「水和」されています。

決定を下すのに役立ついくつかの質問は次のとおりです。

  • オブジェクト全体を水和する際のオーバーヘッドはいくらですか? 追加された複雑さ (DTO または部分的に水和されたオブジェクト) は本当に価値がありますか?
  • 他の誰かがあなたのコードを使用する予定ですか? 人々を部分水和オブジェクトと混同しないでください。人々がコードを保守するようになったとき、DTO はより明確になる可能性があります。

システムの長期的なメンテナンスが容易になるので、個人的には DTO の方が好みです。あなたがワンマン バンドである場合、またはこれが 1 回限りの使い捨てアプリである場合、コードを乱雑にする余分なクラスの束を導入したくないことは完全に理解できます。

于 2009-05-15T10:26:08.310 に答える