控制翻转和依赖倒置:强调的是建立稳定的抽象层;
依赖注入:强调的是程序的扩展性,新添加的功能如何与抽象层或者架构层建立联系。
抽象的依赖由抽象决定,具体的依赖由实现决定。
https://segmentfault.com/a/1190000002424023
依赖关系的控制反转到调用链的起点。这样你可以完全控制依赖关系,通过调整不同的注入对象,来控制程序的行为。