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

时间:2013-08-11 07:40:39

标签: design-patterns dependencies dependency-inversion

Dependency Inversion Principle说:

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

我如何在我的应用程序中找到高级和低级模块,是否有任何清晰的定义?

1 个答案:

答案 0 :(得分:5)

通常我会引用它们:

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

可能有一些例子:RegisterAccountPostAnswerPostQuestionAddCommentInsertComment

由于低级别模块代表更多技术方面而非业务方面。比方说,我们采用InsertComment HLM。 LLM应该是:

  1. 打开数据库连接
  2. 执行插入声明
  3. 关闭数据库连接
  4. 高级模块可以是另一个上下文中的低级模块。再举一个例子,AddComment的LLM应该是:

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