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 の良い習慣であるかどうかを知りたいです。