“高层模块”和“低层模块”是什么(在依赖倒置原则的背景下)?

22

我正在阅读依赖倒置原则的维基百科定义,它使用了两个术语高层模块低层模块,但我无法理解。

它们是什么,依赖倒置原则与它们有什么关系?


可能是[抽象不应该依赖于细节。细节应该依赖于抽象?]的重复问题(https://dev59.com/S3I-5IYBdhLWcg3wta_w) - Steven
在这个答案中有一个很好的例子:https://dev59.com/f2Qn5IYBdhLWcg3wzZz6#16579813 - Krusty
2个回答

11

这些术语的定义已在介绍句中给出:

高层次:政策制定
低层次:依赖模块。

通俗易懂地说,高级模块依赖于低级模块,但不应依赖其实现。这可以通过使用接口来实现,从而将服务的定义与实现解耦。


在这种情况下,他们所说的“模块”是什么意思?因为当我听到“模块”时,我会想到Module32First/Next和.Dll文件。 - user1803300
1
任何被封装的功能都是指:例如业务逻辑依赖于数据库访问,两者都是软件的模块。 - Femaref
你有更简单的例子吗?我不知道什么是业务逻辑。 - user1803300
2
想象一下,您想在一张纸上写些东西。你的手是一个模块,笔是另一个模块。两者不需要相互存在,但手可以使用笔。 - Femaref
我不确定为什么他们没有给你的问题点赞,但是嘿,我刚刚点了个赞 :) - Tarik

3

这里解释了: https://softwareengineering.stackexchange.com/a/419630

低级模块之所以被称为“低级”,是因为它们没有依赖关系,或者没有相关依赖关系。通常情况下,它们可以在不引入任何独立、正式接口的情况下轻松地在不同的上下文中重复使用 - 这意味着,重复使用它们是直截了当的、简单的,不需要任何依赖反转。

高级模块,然而,是“高级”的,因为它们需要其他的、低级模块才能工作。但如果它们与特定的低级实现绑定,这通常会阻止它们在不同的上下文中重用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接