San*_*box 24 dependency-injection inversion-of-control
在过去的几天里,我已经阅读了很多关于依赖注入/控制/反转依赖的反转的内容.我认为,现在我对这个概念的理解要好得多.但我仍然没有从维基百科得到以下内容:
A.高级模块不应该依赖于低级模块.两者都应该取决于抽象.B.抽象不应该依赖于细节.细节应取决于抽象.
我理解高级模块的部分不应该依赖于低级模块.但是,我对抽象和细节感到困惑.有人可以为我简化它们.谢谢.
Vin*_*nie 41
这意味着如果细节发生变化,它们不应该影响抽象.抽象是客户端查看对象的方式.确切地说,对象内部发生的事情并不重要.让我们以汽车为例,踏板,方向盘和变速杆是发动机内部发生的事情的抽象.他们并不依赖于细节,因为如果有人改变我的旧引擎换新的引擎,我仍然可以在不知道发动机改变的情况下开车.
另一方面,细节必须符合抽象所说的内容.我不想实现一个突然导致制动器使汽车速度加倍的发动机.我可以以任何我想要的方式重新制动刹车,只要从外部他们的行为方式相同.