私はDDDを使用してWebアプリケーションを組み立てていますが、教科書DDDモデルを実際のMVCアプリケーションに組み込むのに苦労しています。
私は現在これらのレイヤーを持っています:
コントローラー> ViewModelsBuilders>ドメインサービス>アグリゲート、リモートAPIおよびリポジトリ
- コントローラ
アクションの結果にはビューモデルが必要です - ViewModelsBuilder
これらは、一連のドメインサービスから必要なビューモデルを構築します。 - ドメインサービス
これらは私のドメインへのエントリポイントであり、リモートAPIとリポジトリからデータを渡す(複雑なドメインロジック用の)集約を使用します - 集合体とエンティティ
これらはすべてアセンブリの範囲に限定され、ビジネスロジックが含まれています
質問:
- これは正しい構造ですか、ドメインサービスにするか、すべてをまとめるビューモデルビルダーにする必要がありますか?
- ドメインサービスから返されるオブジェクトは、これらが単純なDTOまたは実際のエンティティであり、アクセスレベルでメソッドを非表示にする必要がありますか?
- ドメインサービスはゲートキーパーである必要がありますか、それともビューモデルビルダーは集約ルート、リポジトリなどにアクセスする必要がありますか?