输入端口在简洁架构中的作用

Role of Input Ports in Clean Architecture

你能给我解释一下吗在清洁架构中输入端口这样的抽象有什么好处?为什么不直接使用交互器/用例?我理解输出端口的作用——这样用例就不必了解演示者和其他适配器。但是我无法理解这个。另外,repository interface和ports之间有什么关系吗?存储库接口可以被视为输入或输出端口吗? 谢谢!

输入输出端口只不过是SOLID的Dependency Inversion Principle在clean Architecture中的应用。在大多数编程语言中,它们是接口(或抽象接口)。如果您查看下面的原始图表。

可以看到Controller调用了Input Port接口的方法,UseCase实现它,然后UseCaseOutput Port接口发送响应, Presenter 实施。在这种情况下,系统的一部分的所有实现都可以被替换,因为它们只依赖于接口。