【发布时间】:2021-03-02 03:50:24
【问题描述】:
我正在阅读鲍勃叔叔的清洁架构书。整本书的要点之一是你应该依赖抽象,而不是实现。
例如,他提到软件的较高层不应该知道较低层的任何内容(我同意)。他还指出,当较高层需要与较低层通信时,较低层必须实现较高层使用的接口。比如Use Case层需要调用Presenter层,就应该通过Presenter实现的接口OutputBoundary来完成,这样Use Case层就不依赖Presenter。如果在没有接口的情况下这样做,那真的很糟糕,因为 Use Case 层依赖于 Presenter 层。
这是真的吗?如果将来 Presenter 层需要用例发送更多或不同的数据,您不仅需要修改 Presenter,还需要修改 OutputBoundary 接口和用例。所以不,用例永远不会完全独立于 Presenter。
如果 Presenter 改变了他展示数据的方式,只是改变了方法的主体,那么用例层就不需要改变任何东西。如果 Presenter 通过更改方法声明来更改他呈现数据的方式,那么您是否有接口都无关紧要,因为您必须修改用例层中的方法调用。在这两种情况下,接口的使用都不重要。
这里有什么我遗漏的吗?我知道接口的用途,并且我知道如果您有或计划有多个演示者,那么让他们实现一个通用接口将是正确的方法,但即使这样我也看不到 独立于他在书中提到的较低层。
【问题讨论】:
标签: java oop interface architecture clean-architecture