私の会社は DDD を採用しようとしています。DDD のガイダンスは、ドメイン アセンブリにすべてのサービス インターフェイスを定義することを要求し、実装者がドメイン アセンブリを参照してサービス インターフェイスを実装できるようにすることのようです。次に、DI を使用してドメインが実装を取得します。ただし、横断的な懸念事項については、ドメイン アセンブリに、そのアセンブリのコア ビジネス ドメインではないロギングなどのインターフェイスを再定義するよう要求するのは無責任に思えます。私は、Quartz.NET のような多くの商用コンポーネントが、Apache Commons のような標準的で広く受け入れられている一連のインターフェースを使用して、横断的な問題をフレームワークに適した方法で解決していることに注目しました。これは DDD の方法と一致していますか、それとも AOP のようなフープを本当にジャンプしていますか?
参考のため:
http://www.infoq.com/articles/ddd-in-practiceから
「これらは再利用可能な非ドメイン関連の問題であり、通常、ドメイン層を含むコード全体に分散して複製される傾向があります。このロジックをドメイン オブジェクトに埋め込むと、ドメイン層と非ドメイン関連のコードが絡み合い、混乱することになります。」
http://cyrille.martraire.com/2009/12/your-crosscuttingconcerns-are-someone-else-core-domai/から
「あなたの分野横断的な関心事は、他の誰かのコア ドメインです」