1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。(High level modules should not depend upon low level modules. Both should depend upon abstractions.)
2、抽象不应该依赖于细节,细节应该依赖于抽象。(Abstractions should not depend upon details. Details should depend upon abstractions.)
图一的依赖箭头都是从上往下的,图二的箭头出现了从下往上,依赖关系确实“倒置”了
另外,此例子也很好的解释了“上层模块不应该依赖底层模块,它们都应该依赖于抽象。”,在最开始的设计中,高层模块PizzaStroe直接依赖低层模块(各种具体的Pizaa),调整设计后,高层模块和低层模块都依赖于抽象(Pizza)。
原文:https://www.cnblogs.com/zw-2371blog/p/12538925.html