作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去的几天里,我阅读了很多关于依赖注入(inject)/控制反转/依赖反转的内容。我 想 那,现在我对这个概念的理解要好得多。但我仍然没有从维基百科得到以下信息:
A. High-level modules should not depend on low-level modules. Both should depend on abstractions. B. Abstractions should not depend upon details. Details should depend upon abstractions.
最佳答案
这意味着如果细节发生变化,它们不应该影响抽象。抽象是客户查看对象的方式。对象内部究竟发生了什么并不重要。让我们以汽车为例,踏板、方向盘和变速杆是发动机内部发生的事情的抽象。他们不依赖于细节,因为如果有人将我的旧引擎换成新引擎,我应该仍然可以在不知道引擎改变的情况下驾驶汽车。
另一方面,细节必须符合抽象所说的。我不想实现一个突然导致刹车使汽车速度加倍的发动机。我可以以任何我想要的方式重新实现刹车,只要它们在外部表现相同。
关于dependency-injection - 抽象不应依赖于细节。细节应该取决于抽象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1710005/
我是一名优秀的程序员,十分优秀!