定义:

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。其核心思想是:要面向接口编程,不要面向实现编程。依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。

作用:

依赖倒置原则可以降低类间的耦合性;

依赖倒置原则可以提高系统的稳定性;

依赖倒置原则可以减少并行开发引起的风险;

依赖倒置原则可以提高代码的可读性和可维护性;

demo:

员工A 要给 员工B发送消息通知

最开始,我们发送消息的方法用的是通过邮件发送。发送动作是高层模块,邮件发送是底层模块。当有一天邮件模块不可用了,需要通过短信发送。 这个适合 原来高层模块无法发送。因为不支持短信。要是直接改邮件发送模块很显然不是对的。

优化方案:

中间加一层发送的抽象类接口。 高级发送模块只需要依赖与这个抽象类,而底层模块也应该依赖于这个抽象类。当更改了发送方案的情况下,只需要让不同的抽象类调用底层的发送接口即可。