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

发布于 2024-09-25 00:01:03 字数 225 浏览 4 评论 0原文

我正在阅读维基百科对依赖倒置原则的定义,它使用了两个术语高级模块低级模块,我无法弄清楚。

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

I was reading Wikipedia's definition of Dependency inversion principle, and it uses two terms High-level modules and low-level modules, which I wasn't able to figure out.

What are they and what does Dependency inversion principle have to do with them?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放飞的风筝 2024-10-02 00:01:03

这些的定义在介绍性句子中给出:

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

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

The definition of those are given in the introductory sentence:

high level: policy setting
low level: dependency modules.

In laymen's terms: high level modules depend on low level modules, but shouldn't depend on their implementation. This can be achieved by using interfaces, thus decoupling the definition of the service from the implementation.

深海夜未眠 2024-10-02 00:01:03

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

低级模块是“低级”的,因为它们没有依赖项
或者没有相关的依赖关系。很多时候,它们可以很容易地重复使用
不同的上下文,而不引入任何单独的、正式的接口 - 这意味着,重用它们是直接、简单的,并且不需要任何依赖倒置。

高级模块,然而,是“高级”,因为它们需要
其他可以工作的较低级别模块。但如果它们与特定的
低级实现,这通常会阻止在
不同的上下文。

This is explained here:
https://softwareengineering.stackexchange.com/a/419630

Low level modules are "low level" because they have no dependencies,
or no relevant dependencies. Very often, they can be easily reused in
different contexts without introducing any separate, formal interfaces - which means, reusing them is straightforward, simple and does not require any Dependency Inversion.

High level modules, however, are "high level", because they require
other, lower level modules to work. But if they are tied to a specific
low-level implementation, this often prevents to reuse them in a
different context.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文