定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象
    优点:可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险

    1. 抽象不应该依赖细节;细节应该依赖抽象
    2. 针对接口编程,不要针对实现编程

    依赖倒置原则常用于情况多变的实现
    原则上高层不依赖底层提供的服务
    修改或添加同层的实现不影响其他同层的内容
    方便扩展