一个用例是否可以将来自不同域的存储库作为依赖项,遵循干净的架构原则?

问题描述 投票:0回答:0

假设我有两个模型:Student 和 Course,所以我们这里有一个简单的多对多关系,即每个学生可以选修很多课程,每个课程有很多学生。

我还有一个用于将学生添加到现有课程的用例,我在其中接收学生 ID 和课程 ID 作为输入,并将这对添加到我的关系表中,该表由 AddStudentToCourseRepository 管理。

我面临的问题如下:如果客户端尝试将学生添加到不存在的课程中,我的应用程序需要返回错误。我虽然将 ReadStudentByIdRepository 和 ReadCourseByIdRepository 添加为我的 AddStudentToCourseUsecase 的依赖项,因此我可以在调用 AddStudentToCourseRepository 之前检查两个 id 是否有效。

我的问题是:我这样做是否违反了干净的架构原则,我的意思是,让一个用例将来自多个域的存储库作为依赖项是一种不好的做法吗?如果我是,你们会如何处理这种情况?

design-patterns domain-driven-design repository-pattern clean-architecture use-case
© www.soinside.com 2019 - 2024. All rights reserved.