我发现我的构造函数开始看起来像这样:
public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2.... )
随着参数列表的不断增加。既然“Container”是我的依赖注入容器,为什么我不能这样做:
public MyClass(Container con)
每堂课?有什么缺点?如果我这样做,感觉就像我正在使用美化的静电。请分享您对 IoC 和依赖注入疯狂的想法。
你是对的,如果你使用容器作为服务定位器,它或多或少是一个美化的静态工厂。由于很多原因我认为这是一种反模式(另见这段摘录来自我的书)。
构造函数注入的一大好处是它违反了单一责任原则显而易见。
当这种情况发生时,是时候重构 Facade 服务。简而言之,创建一个新的、更多的粗粒度隐藏您当前需要的部分或全部细粒度依赖项之间的交互的接口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)