我剛開始設計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