5

DDDでデザインを始めたばかりです(経験も教師もありません)

ある時点で相互に参照しなければならないドメイン サービス クラスがいくつかあります。そこで、コンストラクターを介して参照を注入することにしました。

そして、コントローラーに表示する大量のデータを持つビューを作成したとき、一連のサービスを作成する必要がありました (そのうちのいくつかは相互に参照しています)。

この時点で、コントローラーの最初の行の 1 つが次のようになりました。

        EmployeeRepository employRepository = new EmployeeRepository();
        ShiftModelRepository shiftModelRepository = new ShiftModelRepository();
        ShiftModelService shiftModelService = new ShiftModelService(shiftModelRepository);
        EmployeeService employeeService = new EmployeeService(employRepository, shiftModelService);
        OvertimeRepository overtimeRepository = new OvertimeRepository();
        OvertimeService overtimeService = new OvertimeService(overtimeRepository, employeeService);

しかし、サービス用のインターフェイスを作成し、IoC コントローラー (StructureMap という名前) を使用し始めました。

そして、同じコントローラーの最初の行は次のようになります。

        IShiftModelService shiftModelService = ObjectFactory.GetInstance<IShiftModelService>();
        IOvertimeService overtimeService = ObjectFactory.GetInstance<IOvertimeService>();
        IEmployeeService employeeService = ObjectFactory.GetInstance<IEmployeeService>();

使用する方がはるかに優れていると思いますが、それが DDD の良い習慣であるかどうかを知りたいです。

4

2 に答える 2