我刚刚开始使用 DDD 进行设计(我既没有经验也没有老师)
我有一些域服务类在某些时候必须相互引用。所以我决定通过构造函数注入引用。
当我创建一个在控制器中显示大量数据的视图时,我必须创建一堆服务(其中一些相互引用)
此时,我的控制器的第一行如下所示:
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 中是否是一个好的做法。