我刚开始设计DDD(我没有经验,没有一位老师)为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的一个好习惯。
的接口都不错,但你应该看看人所以看看注射(特别是[构造函数注入](http://stackoverflow.com/questions/2531612/structuremap-resolve-dependency-through-injection-instead-of-service-location))而不是使用服务位置。 – StuartLC
请阅读我对Matt Whetton的回答 – jannagy02