ドメインドリブンデザインの現在の理解を使用して新しいアプリケーションを構築しています。これまでは、ドメイン内のエンティティを表すクラスと、データベースから取得/保持するリポジトリを持つクラスがありました。ドメインドリブンデザイン:複雑なデータのリストを取得する方法
私が遭遇している問題は、UIの中で、リスト内の項目が自分のドメイン内のどのエンティティにも直接マッピングされないいくつかのリストを表示する必要があることです。リストの中には、特定のエンティティのかなり深刻な負荷をかけて構築できるものもありますが、他のデータは基本的に検索時に合成され、エンティティの一部ではありません。うまくいけば問題をより明確に説明できる例を提供しましょう。
私のドメインでは、評価(回答する質問のセット)と回答(各ユーザが評価に提供した回答)が評価に与えられます。私も行動を取る。各アクションは、レスポンス(送信、承認、却下など)で行われたアクションを表します。私もユーザーがいます。
私が表示する必要があるデータのリストの1つに、応答と評価(応答されていない)が含まれている場合、各行には現在応答を処理しているユーザーに関する情報が含まれますレスポンスで取られたアクションを見て検索時間)各広告申込情報には、これまでの回答で行われたアクションである0個以上の子アイテムも含まれます。
現時点では、このデータセット全体をドメインエンティティで表現する方法はありません。私の最初の反応は、データベースからデータテーブルを取得し、ドメインエンティティをバイパスすることだけです。しかし、私はドメインオブジェクトを操作したり、オブジェクト自体に焼き付けられたさまざまなエンティティ間の関係を持つことで多くの価値を見ています。だから私の次のアイデアは、これらのリストをサポートするために私のドメインエンティティを変更することですが、私はこれらのリストシナリオをサポートするために私のエンティティに奇妙なプロパティを追加することと、私のアプリケーションのいくつかの場所でそのデータが必要なときにオブジェクトを使用することができます。
Ok、私は今サービスを読んでいます。サービスがデータをビューとして表示すると言うと、ビューは何ですか?この目的のためだけに定義されたクラスですか?ドメインエンティティで構成されていますか? –
私はMVCの意味でビューを使用しています。つまり、仕事を見せてくれるものです。実際の関連データはサービスによって集計され、ビューが渡されて表示されます(あなたの場合は、あなたが言及する「データのリスト」です)。サービスはビューに渡す前に別々のクラス(特に多くのビューが同じデータを使用している場合)でラップするように決定することもできますが、それは必ずしも必要ではありません。 –