设计原则(3):依赖倒置原则

何为依赖倒置原则,主要分为一下三点:
1、模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生 的;
2、接口或抽象类不依赖于实现类;
3、实现类依赖接口或抽象类;

实际开发中的用法:
1、每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备;
2、变量的表面类型尽量是接口或者是抽象类;
3、尽量不要覆写基类的方法;
4、 结合里氏替换原则使用,我们可以得出 这样一个通俗的规则: 接口负责定义public属性和方法,并且声明与其他对象的依赖关系,抽象类负责公共构 造部分的实现,实现类准确的实现业务逻辑,同时在适当的时候对父类进行细化。

例如:模拟司机开车的场景:
在这里插入图片描述
两实现相互依赖,如果还要加上司机需要开BMW车是不是就会很难扩展,所以合理的设计如下:引入之后发现是不是很好扩展,这就是依赖倒置原则的魅力。
在这里插入图片描述