java 设计原则的依赖倒置原则 -- DIP
Denpendence Inversion Principle
特点是
- 高层模块不依赖底层模块'''两者都依赖于抽象'''
- 抽象不依赖于细节
- 细节应该依赖于抽象
--java中的具体体现是--
- 模块间依赖通过抽象发生,实现类之间不直接产生依赖关系,其依赖关系通过接口或者是抽象关系产生
- 接口或抽象不依赖于具体的实现类
- 实现类依赖于接口或者抽象类
个人觉得这几点总结非常好,而且在实际场景中我们应该去多加应用,而且对源码的解读也会有很大的帮助
一个金典例子
司机开车,有奔驰和宝马两种车,依赖倒置原则显示如下:
//司机接口
public interface Idriver{
public void drive(Icar car);
}
//描述类
public class Driver implements Idriver{
public void drive(Icar car){
car.run();
}
}
//抽象接口所有车都能run
public interface Icar{
public void run();
}
//奔驰车
public class Benz implements Icar{
public void run(){
syso("奔驰行驶");
}
}
//宝马车
public class BMW implements Icar{
public void run(){
syso("宝马行驶");
}
}
//测试类
public class Test{
public static void main(String[] args){
Idriver driver = new Idriver;
Icar car = new BMW();
driver.drive(car);
}
}
宝马行驶
会感觉到现在就是面向接口编程,有时候会使项目结构更清晰,减少代码量,个人非常推崇
借助于:电子工业出版社《设计原则》