2017-05-26 6 views
1

に注入された依存関係を持つことができます -はPOCO /ドメインオブジェクトは、これは、ビジネス層のための私の現在のコード構造であること

    のUserManager(サービスクラス)は、ユーザーに動作します
  • (ドメインオブジェクト)
  • CompanyManager(サービスクラス)会社で働く(ドメインオブジェクト)今

、私のドメインオブジェクトの両方が

  • に依存しますIUnitOfWork - (IUserRepository、ICompanyRepositoryを使用しています)

私はそれがドメインオブジェクトがリポジトリ上の任意の依存関係を持つべきではないと言う記事を読みました。だから私の質問は2つの部分に分かれています -

  1. ドメインオブジェクトに依存性があってはいけませんか?上記の場合、「Company」の操作によって「User」の操作がトリガーされ、CompanyオブジェクトがUserManagerに依存することはありますか?
  2. ドメインオブジェクトが依存関係を持つべきでなければ、それらのロジックをどこに保持すべきですか?リポジトリの保存メソッドはどこで呼び出すべきですか、「会​​社」で何かが起きたときにUserManagerへの呼び出しですか?

ありがとう!

+0

ドメインオブジェクトは、これまでIUnitOfWork –

+2

「のUserManager(サービスクラス)のユーザーで動作(ドメインオブジェクト)」に依存関係を持つべきではありませんか? –

答えて

3

DDDでは、ドメイン層はすべてのドメインロジックをカプセル化する最も内側の層になります。ドメインクラスに依存しないようにすることをお勧めします。例えば、イベントを発生させる必要があり、あなたのシナリオでは

は、Domain Events

  1. 会社のドメインを使用することが理想的です"OnPolicyChanged"であり、このイベントはUserManagerで聴取され、マネージャはUserドメインのドメインロジックを呼び出す必要があります。

  2. ドメイン階層に永続ロジックを組み込むのは理想的ではありません。より高いレベルにする必要があります(例:データベースへの変更をコミットする必要があるサービス/インフラストラクチャ層。意味「作品」んどのような -

関連する問題