在依赖关系中查找高级和低级模块以应用依赖关系反转Principe



依赖反转原理说:

  • 高级模块不应依赖于低级模块。二者都应该依赖于抽象
  • 摘要不应依赖于细节。细节应取决于基于抽象

如何在我的应用程序中实际找到高级低级模块,它们有明确的定义吗?

我通常这样称呼它们:

高级模块-->此模块更多地代表业务方面,而不是技术方面。它可以被称为抽象而非实现,通常通过接口来实现。

例如:RegisterAccountPostAnswerPostQuestionAddCommentInsertComment

因为低级模块代表更多的是技术方面,而不是业务方面。例如,我们采用InsertComment HLM。LLM应为:

  1. 打开数据库连接
  2. 执行插入语句
  3. 关闭数据库连接

在另一种情况下,高级模块可以是低级模块。举另一个例子,AddComment的LLM应该是:

  1. 验证注释(例如15个字符)-->这将是另一个HLM
  2. 将注释插入数据库-->这将是另一个HLM(InsertComment
  3. 向相关用户添加通知-->这将是另一个HLM

这同样适用于其他HLM。

最新更新