问题标签 [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.
oop - 什么是依赖倒置原则,为什么它很重要?
什么是依赖倒置原则,为什么它很重要?
oop - “依赖倒置”和“设计到接口”的原则是一样的吗?
“依赖倒置原则”(DIP)和“接口设计原则”表达了相同的原则吗?如果不是,会有什么区别?
编辑
为了澄清和缩小上下文:接口是指编程接口,如 Javainterface
或 C++ 中的纯抽象基类。不涉及其他“合同”。
oop - OOP中的“依赖倒置原则”是什么意思?
面向对象编程中的“依赖倒置原则”是什么意思?它有什么作用?
module - 什么是“高级模块”和“低级模块”(在依赖倒置原则的上下文中)?
我正在阅读Wikipedia 的 Dependency inversion principle 定义,它使用了两个术语High-level modules和low-level modules,我无法弄清楚。
它们是什么,依赖倒置原则与它们有什么关系?
c# - SOLID的依赖倒置原则中提到的“细节”这个词应该怎么定义?
来自维基百科:
该原则指出:
我能理解A。
但是我在(B)中为“详细信息”编写定义时遇到了问题。
如何定义术语定义?它究竟代表什么?
谢谢!
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.
javascript - JavaScript 中的依赖倒置原理
有没有人能帮助说明JavaScript jQuery 中的依赖倒置原则?
这将突出和解释这两点:
A. 高级模块不应该依赖于低级模块。两者都应该依赖于抽象。
B. 抽象不应依赖于细节。细节应该取决于抽象。
什么是抽象或高级/低级模块?
这对我的理解很有帮助,谢谢!
oop - 我们是否使用依赖注入技术实现了依赖倒置原则?
我们是否使用依赖注入技术实现了依赖倒置原则?
我对么?
java - 单元测试 OSGi 组件
我目前正在考虑“如何设计一个 OSGi 组件,以便使用 jUnit 和 Mockito 等框架轻松编写测试”。
由于 OSGi 加强了 DIP (依赖倒置原则)并且注入器方法(例如 setter)通常存在,因此模拟包间依赖关系非常容易。
但是捆绑内部依赖项呢?
比如看这个案例。现在我想把它带入一个 OSGi 上下文......我们想在 OSGi 平台中提供任何类型的网络协议作为声明性服务,并想编写单元测试来测试直接与套接字对象。
如果我们将套接字创建重构为一个单独但仍然捆绑内部 POJO (普通旧 Java 对象)类,我们应该如何将其注入协议实现?
- 在单元测试中,我们可以简单地使用 setter 方法,但谁会在 OSGi 容器中为我们这样做呢?
- 仅当未将测试类声明为 final 时,子类化测试类并覆盖创建者方法才有效。
oop - “开放/封闭原则”和“依赖倒置原则”有什么区别?
我阅读了有关 SOLID 的文章,但我看不出 OCP 和 DIP 之间有什么区别。看看这个 OCP 的例子:
持有 OCP 的代码也满足 DIP。谁能给我一个包含OCP而不是DIP的代码示例?