【发布时间】:2011-01-26 02:03:12
【问题描述】:
我发现我的构造函数开始看起来像这样:
public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2.... )
随着参数列表的不断增加。既然“Container”是我的依赖注入容器,我为什么不能这样做:
public MyClass(Container con)
每个班级?有什么缺点?如果我这样做,感觉就像我在使用美化的静态。请分享您对 IoC 和依赖注入疯狂的看法。
【问题讨论】:
-
你为什么要通过容器?我想你可能误解了国际奥委会
-
如果你的构造函数需要更多或更多的参数,你可能在这些类中做的太多了。
-
这不是你进行构造函数注入的方式。对象根本不知道 IoC 容器,也不应该知道。
-
您可以只创建一个空的构造函数,在其中直接调用 DI 请求您需要的东西。这将消除构造函数的疯狂,但您需要确保您使用的是 DI 接口..以防您在开发过程中更改您的 DI 系统。老实说.. 没有人会支持这样做,即使这是 DI 注入构造函数的方法。呵呵
标签: c# java dependency-injection inversion-of-control ioc-container