清洁架构,用例依赖
Posted
技术标签:
【中文标题】清洁架构,用例依赖【英文标题】:The Clean Architecture, usecase dependencies 【发布时间】:2017-03-20 09:53:24 【问题描述】:最近,我找到了 The Clean Architecture Bob 叔叔的帖子。但是当我尝试将它应用到当前项目时,当一个用例需要依赖另一个用例时,我陷入了困境。
例如,我的领域模型是目标和任务。一个目标可以有多个任务。当我更新一个任务时,它需要更新其父目标的信息。换句话说,UpdateTask
用例将有UpdateGoal
用例作为依赖项。我不确定这是否可以接受,或者我们是否应该避免用例级别的依赖。
【问题讨论】:
【参考方案1】:用例与应用程序的功能相关。一般来说,当我们需要从一个用例调用到另一个用例时,有些东西是行不通的。
当你孤立地更新一个目标时,它和你通过一个任务的改变来更新它的场景是不一样的,事实上,它肯定不是所有的数据都被更新了,而是一部分。
当然,您将不得不使用目标存储库和目标实体,但这是完全不同的场景。在您的情况下,您没有复制逻辑,仅调用存储库或实体,将来节省代码行可能会很昂贵。
简而言之,用例之间存在依赖并不是一个好主意。
【讨论】:
我不完全同意你的说法,这是我的用例(没有双关语?)。我有一个为特定用户生成 AuthSession 的用例,该用例由应用程序中的管理员角色用户调用。我还有一个用例,它使用电子邮件/密码对用户进行身份验证,而不是重新创建为用户生成 AuthSession 的逻辑,而是调用另一个用例。现在,这是我的解决方案,小团队在实施干净架构时可以明智地偏离,但我确信大型团队对干净架构的指导原则更加严格。以上是关于清洁架构,用例依赖的主要内容,如果未能解决你的问题,请参考以下文章