DDDのアプリケーションイベント?
この質問は次のようになります。DDDにアプリケーションイベント用語は存在しますか?、しかし、そこで与えられた説明を私の特定の問題に適用する方法がわかりません。
私はを持ってSearchFilmUseCase
おりFilmSearchedEvent
、実行が終了したらイベントを発生させたいと思っています。現在、アプリケーション層がイベントを提起しています。ドメインからこのイベントを発生させる唯一の方法は、にありFilmRepository
ます。ただし、リポジトリは単なるインターフェイスであるため、そこでイベントを発生させることはできません。
アプリケーション層でイベントを発生させるのは正しくないと思います。どうすればこの状況に対処できますか?
回答
2 choquero70
1つの解決策は、検索を実行してイベントを発生させるドメインサービスを作成することです。
1 Albert
すべてのドメインイベントは、ドメインレイヤーから発生する必要があります。最適な場所は、アクションを実際に実行する必要がある集約ルートです。集約ルートには、発生したすべてのドメインイベントを含めることができ、アプリケーション層でそれらを取得してイベントバスに公開できます。