有一个包含多个模块的单体应用程序,您需要选择放置 API 接口和数据结构的位置。有两个选项假设有两个模块module1和module2
- 将 module1 的 API 包与接口放在 module1 中,并且将其暴露在外部以供其他模块使用,实现将在 module1/server.xml 中。
- 将 module1 的 API 包与接口放在将使用这些接口的 module2 模块中,实现将在 module1/serer 中。
有什么优点和缺点,哪个更好用?
有一个包含多个模块的单体应用程序,您需要选择放置 API 接口和数据结构的位置。有两个选项假设有两个模块module1和module2
有什么优点和缺点,哪个更好用?
您可以将通用接口移动到第三个模块中,并从两个模块中使用它们。那么这两个模块之间的依赖关系就无关紧要了。
对不起,但我会以不同的方式开始,我没有什么新东西。
无论架构如何,无论哪种方式,我们都不会远离SOLID 。对于这个问题,我们对最后两个字母感兴趣。
I -接口 隔离原则
D -依赖 倒置原则
所以出了这两个原则。
将接口/抽象移到使用它们的模块级别之上。
如果模块处于同一级别,则不存在任何依赖问题。模块存储接口的实现(类是细节)并依赖于抽象(抽象类、接口)。模块还存储较低级别的抽象(抽象类、接口)。