如何避免依赖注入构造函数的疯狂?

我发现我的构造函数开始像这样:

公共MyClass(容器con、某些类别1 obj1、某些类别2、obj2….)

随着参数列表的不断增加。既然“容器”是我的依赖注入容器,为什么我不能这样做:

公共MyClass(容器con)

每节课?缺点是什么?如果我这样做,感觉就像我在使用美化的静态。请分享你对IoC和依赖注入疯狂的看法

您是对的,如果您将容器用作服务定位器,它或多或少是一个美化的静态工厂。由于许多原因我认为这是反模式(也见这是我书中的摘录)

构造函数注入的一大好处是它违反了单一责任原则非常明显

当这种情况发生时,是时候重构到门面服务。简而言之,创建一个新的、更粗粒度的接口,该接口隐藏当前需要的部分或所有细粒度依赖项之间的交互

发表评论