问题标签 [dependency-inversion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
16 回答
83106 浏览

oop - 什么是依赖倒置原则,为什么它很重要?

什么是依赖倒置原则,为什么它很重要?

0 投票
4 回答
1325 浏览

oop - “依赖倒置”和“设计到接口”的原则是一样的吗?

“依赖倒置原则”(DIP)和“接口设计原则”表达了相同的原则吗?如果不是,会有什么区别?

编辑

为了澄清和缩小上下文:接口是指编程接口,如 Javainterface或 C++ 中的纯抽象基类。不涉及其他“合同”。

0 投票
2 回答
893 浏览

oop - OOP中的“依赖倒置原则”是什么意思?

面向对象编程中的“依赖倒置原则”是什么意思?它有什么作用?

0 投票
1 回答
4752 浏览

module - 什么是“高级模块”和“低级模块”(在依赖倒置原则的上下文中)?

我正在阅读Wikipedia 的 Dependency inversion principle 定义,它使用了两个术语High-level moduleslow-level modules,我无法弄清楚。

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

0 投票
1 回答
98 浏览

c# - SOLID的依赖倒置原则中提到的“细节”这个词应该怎么定义?

来自维基百科:

该原则指出:

我能理解A。

但是我在(B)中为“详细信息”编写定义时遇到了问题。

如何定义术语定义?它究竟代表什么?

谢谢!

0 投票
2 回答
3899 浏览

php - Dependency Inversion Principle in PHP

Since PHP is a loosely typed language, how can the DIP principle be applied in PHP?

A practical example would be greatly appreciated.

0 投票
4 回答
5647 浏览

javascript - JavaScript 中的依赖倒置原理

有没有人能帮助说明JavaScript jQuery 中的依赖倒置原则?

这将突出和解释这两点:

A. 高级模块不应该依赖于低级模块。两者都应该依赖于抽象。

B. 抽象不应依赖于细节。细节应该取决于抽象。

什么是抽象或高级/低级模块?

这对我的理解很有帮助,谢谢!

0 投票
2 回答
282 浏览

oop - 我们是否使用依赖注入技术实现了依赖倒置原则?

我们是否使用依赖注入技术实现了依赖倒置原则?

我对么?

0 投票
1 回答
6132 浏览

java - 单元测试 OSGi 组件

我目前正在考虑“如何设计一个 OSGi 组件,以便使用 jUnit 和 Mockito 等框架轻松编写测试”

由于 OSGi 加强了 DIP (依赖倒置原则)并且注入器方法(例如 setter)通常存在,因此模拟包间依赖关系非常容易。
但是捆绑内部依赖项呢?

比如看这个案例。现在我想把它带入一个 OSGi 上下文......我们想在 OSGi 平台中提供任何类型的网络协议作为声明性服务,并想编写单元测试来测试直接与套接字对象。

如果我们将套接字创建重构为一个单独但仍然捆绑内部 POJO (普通旧 Java 对象)类,我们应该如何将其注入协议实现?

  • 在单元测试中,我们可以简单地使用 setter 方法,但谁会在 OSGi 容器中为我们这样做呢?
  • 仅当未将测试类声明为 final 时,子类化测试类并覆盖创建者方法才有效。
0 投票
1 回答
1891 浏览

oop - “开放/封闭原则”和“依赖倒置原则”有什么区别?

我阅读了有关 SOLID 的文章,但我看不出 OCP 和 DIP 之间有什么区别。看看这个 OCP 的例子:

持有 OCP 的代码也满足 DIP。谁能给我一个包含OCP而不是DIP的代码示例?