使用带有清洁架构的DDD,我首先实例化所有依赖项(例如存储库和服务),并将其注入到UseCases中。随着时间的推移,我注意到的是,随着时间的推移,我对每个UseCase的依赖关系列表都变得越来越大。例如,我的UseCase使用3个聚合根,因此我有3个存储库。还不错但是,随着我添加更多功能,我发现自己添加了域服务或更多存储库,并且还必须将它们注入UseCase构造函数中。在UseCase交互器中可以有10个以上的参数吗?我一直认为具有2-3个以上的参数是代码的味道。有没有更好的方法来解决这个问题?先感谢您。
最佳答案
在构造函数中必须具有许多依赖性绝对是代码的味道。这并不是一件容易的事,通常更多的是经验和技巧,但是基本上您需要从不同的角度看待您的系统,并检查某些服务/集合是否可以被新的服务/集合所替代(合并)。在你的旧的。比起这一新功能,最终还可以证明它在系统中的其他地方也有用,因此您将减少代码重复性。您必须只遵循SRP。
您可以在此处找到一个很好的示例:
http://blog.ploeh.dk/2010/02/02/RefactoringtoAggregateServices/