在依赖关系中查找高级和低级模块以应用依赖性倒置Principe

Mas*_*oud 4 dependencies design-patterns dependency-inversion

依赖倒置原则说:

  • 高级模块不应该依赖于低级模块.两者都应该取决于抽象.
  • 抽象不应该依赖于细节.细节应取决于抽象.

我怎样才能在我的应用程序中找到高级和低级模块,对它们有什么清晰的定义吗?

Fen*_*ndy 5

这通常是我引用它们的方式:

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

一些示例可能:RegisterAccount,PostAnswer,PostQuestion,AddComment,InsertComment.

由于低级模块代表更多的技术方面而不是业务方面.比如说我们采用InsertCommentHLM.LLM应该是:

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

高级模块可以是另一个上下文中的低级模块.再举一个例子,AddCommentLLM应该是:

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

这同样适用于其他HLM.