我发现我的构造函数开始像这样:
公共MyClass(容器con、某些类别1 obj1、某些类别2、obj2….)
随着参数列表的不断增加。既然“容器”是我的依赖注入容器,为什么我不能这样做:
公共MyClass(容器con)
每节课?缺点是什么?如果我这样做,感觉就像我在使用美化的静态。请分享你对IoC和依赖注入疯狂的看法
您是对的,如果您将容器用作服务定位器,它或多或少是一个美化的静态工厂。由于许多原因我认为这是反模式(也见这是我书中的摘录)
构造函数注入的一大好处是它违反了单一责任原则非常明显
当这种情况发生时,是时候重构到门面服务。简而言之,创建一个新的、更粗粒度的接口,该接口隐藏当前需要的部分或所有细粒度依赖项之间的交互