- 概念:指设计代码结构时,高层模块不应该依赖低层模块,二者应该依赖其抽象
- 强调:抽象不应该依赖细节,细节应该依赖抽象
- 通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,降低修改程序所造成的风险
事例一:
改造前:
public class Tom{
public void studyJavaCourse(){
System.out.println("Tom 在学习java课程")
}
public void studyPythonCourse(){
System.out.println("Tom 在学习python课程")
}
public void studyAICourse(){
System.out.println("Tom 在学习AI课程")
}
}
public static void main(String[] args){
Tom tom = new Tom();
tom.studyJavaCourse();
tom.studyPythonCourse();
tom.studyAICourse();
}
改造后:
public interface ICourse{
void study();
}
public class JavaCourse implements ICourse{
public void study(){
System.out.println("学习java课程")
}
}
public class PythonCourse implements ICourse{
public void study(){
System.out.println("python课程")
}
}
public class AICourse implements ICourse{
public void study(){
System.out.println("AI课程")
}
}
public class Tom{
private ICourse course;
public Tom(ICourse course){
this.course = course;
}
public void study(){
course.study();
}
}
public static void main(String[] args){
Tom tom = new Tom(new AICourse());
tom.study();
}