8

DDD でよく知られているアドバイスは、集約ルートはドメイン サービスを使用しないというものです。ドメイン サービスは、動作を実現するために 2 つの集約ルートを調整します。

Rinat Abdullin がBuilding Blocks Of CQRSというタイトルで書いたこのブログを見て、本当に驚きました。[ドメイン サービス] セクションの下に、ドメイン サービスが集約ルートに挿入されていることが表示されます。

集約ルートはドメイン サービスを受け入れることができますか?

4

4 に答える 4

11

その記事は無視してください。それはずっと前に書かれたものであり、明らかに間違っています。AggregateRootおよびDomainServiceパターンを使用してモジュールを実装する場合は、以下を担当するより高度なロジック (リクエスト ハンドラーなど) を用意することをお勧めします。

  1. アグリゲートのロード
  2. ドメイン サービスを利用した計算の実行
  3. それに応じて集約状態を変更します。
于 2015-02-04T07:57:47.240 に答える
10

ある意味そうです。AR がそのジョブの一部を実行するためにサービスを本当に必要とする場合は、それをメソッド引数として挿入できます。AR がその動作のほとんどにサービスを必要とする場合、おそらくモデル化が正しくありません。

于 2013-06-17T08:30:55.627 に答える
3

ドメイン オブジェクトに何かを注入するのは非常に困難であり、これを行うことはかなり技術固有です。Java では、コンパイル時にアスペクトをドメイン クラスに織り込む必要があります。これについては私が誤解している可能性もありますが、ほとんどの DDD リーダーは、これは一般的に悪い考えだと考えていると思います。EvansVernonも積極的にそれを思いとどまらせており、私は彼らの話を聞くのが好きです。完全な説明については、Vernon を参照してください。

于 2013-06-08T04:29:05.860 に答える