处理几种常见的贬值

时间:2016-05-11 13:55:32

标签: dependency-injection

我正在为所有服务类使用依赖注入。我注入依赖项的大多数服务都有几个常用的依赖项,例如ILogServiceIMessageService(用于向用户显示消息),IFileSystemService (抽象File类,以便我可以单元测试依赖于读取文件的东西),IDateTimeService(抽象DateTime以便我可以在单元测试期间注入日期),IConfigurationService(这样我就可以注入应用程序单元测试期间的配置设置),等等。结果是我的服务类最终都有一堆构造函数参数,因为它们中的大多数都至少有四到五个公共依赖项,加上它们的特定依赖项(IOrderServiceICustomerService,等)

我一直在考虑将所有常用的依赖项放到像IEnvironmentService这样的外观中,以减少依赖项,但这似乎违反了单一责任原则,因为新服务会有处理日志记录,消息传递,读/写文件等的方法(加上它会有这么多方法的事实看起来很糟糕)。

处理这种情况的推荐方法是什么?我试图阻止我的构造函数拥有大量参数,但也不会违反单一责任。

0 个答案:

没有答案