【发布时间】:2021-01-02 03:38:22
【问题描述】:
我有一个类依赖于通过 Autofac 注入的大量依赖项。 这是一个例子:
public MyService(
IService1 service1,
IService2 service2,
...)
{
_service1 = service1;
_service2 = service2
}
我需要传递大约 10 个依赖项。我们现在实现了 SonarQube,抱怨很多 Constructor 参数。
是否有另一种“更好/首选”的方式来传递这些依赖项以使 SonarQube 满意?
【问题讨论】:
-
将它们捆绑到一个类
DependencyPackage中,你只有一个参数。 SonarQube 可能会更快乐 ;) -
@Mong 这只是在推卸责任。现在
DependencyPackage的构造函数将具有相同数量的参数... -
如果一个类有 10 个依赖项,它可能做的太多,因此难以维护和测试,这正是 SonarQube 试图告诉你的。您需要对其进行重构以消除此警告。
-
您是否真的因为依赖的数量而遇到问题?代码分析应该是一种工具,可以帮助突出显示由于某种原因而有问题的代码。所以问题应该是如何让你快乐,而不是SonarQube。
-
@CodeCaster “这只是在推卸责任。”,“如果一个类有 10 个依赖项,它可能做的太多,因此难以维护和测试,”真实的话!谢谢提醒
标签: c# dependency-injection sonarqube autofac