最近,我看到了查德·帕里撰写的题为"DIY-DI“或”自己动手“的伟大文章。 --我还没有准备好使用IoC框架,但我想朝这个方向努力。似乎DIY是一个很好的第一步。
然而,在阅读了这篇文章之后,我仍然对对象创建感到有些困惑。下面是一个简单的例子:

使用手动构造函数依赖项注入(而不是DIY),必须构造Hotel对象:
PowerGrid powerGrid; // only one in the entire application
WaterSupply waterSupply; // only one in the entire application
Staff staff;
Rooms rooms;
Hotel hotel(staff, rooms, powerGrid, waterSupply);创建所有这些依赖对象使孤立地构造Hotel对象变得困难,这意味着编写Hotel单元测试将是困难的。
使用DIY会使它更容易吗?
与手动构造函数依赖注入相比,DIY提供了什么优势?
发布于 2010-06-11 05:06:20
在您所说的DIY和手动构造函数注入之间没有区别。
如果创建Hotel实例太困难,您可以做两件事:
Hotel类来独立地测试测试双打类,而不是具体的类。随着应用程序变得越来越复杂,管理所有依赖关系的生命周期的任务也是如此。虽然在技术上可以手动组合整个应用程序,但这正是DI容器非常有用的地方。
发布于 2012-05-03 19:30:36
暗示
创建所有这些依赖对象使孤立地构造Hotel对象变得困难
正如我所看到的,不应该存在从蓝色对象到红色对象的依赖关系。具有不同生命周期的对象不应相互依赖。另见:http://misko.hevery.com/2008/09/30/to-new-or-not-to-new/
https://stackoverflow.com/questions/3016940
复制相似问题