3

使用带有 Clean Architecture 的 DDD,我首先实例化所有依赖项(例如存储库和服务)并将它们注入到我的用例中。随着时间的推移,我注意到我对每个 UseCase 的依赖项列表随着时间的推移变得非常大。例如,我的 UseCase 使用 3 个聚合根,所以我有 3 个存储库。没那么糟糕。但是,随着我添加更多功能,我发现自己添加了域服务或更多存储库,并且还必须将它们注入到 UseCase 构造函数中。在用例交互器中可以有 10 多个参数吗?我一直认为超过 2-3 个参数是一种代码味道。有没有更好的方法来处理这个?先感谢您。

4

1 回答 1

3

构造函数中有许多依赖项绝对是代码异味。这不是很容易处理,而且通常更多的是经验和技能的问题,但基本上你需要从不同的角度看待你的系统,并检查某些服务/聚合是否可以被新的替换(合并),这取决于在你的旧人身上。比这个新的最终证明在您系统的其他地方也有用,因此您将减少代码重复性。您必须遵循 SRP。

你可以在这里找到很好的例子:http: //blog.ploeh.dk/2010/02/02/RefactoringtoAggregateServices/

于 2018-01-08T13:20:52.053 回答