如何处理在具有干净架构的 DDD 中具有太多依赖项参数的用例交互器构造函数



使用带有干净架构的DDD,我首先实例化了我所有的依赖项(例如存储库和服务(,并将它们注入到我的用例中。 随着时间的推移,我注意到的是,随着时间的推移,每个用例的依赖项列表都变得相当大。 例如,我的用例使用 3 个聚合根,所以我有 3 个存储库。 还不错。 但是,当我添加更多功能时,我发现自己添加了域服务或更多存储库,并且还必须将它们注入用例构造函数中。 用例交互器中有 10+ 个参数可以吗? 我一直认为拥有超过 2-3 个参数是一种代码气味。 有没有更好的方法来解决这个问题? 提前谢谢你。

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

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

最新更新