- 概念:指设计代码结构时,高层模块不应该依赖低层模块,二者应该依赖其抽象
- 强调:抽象不应该依赖细节,细节应该依赖抽象
- 通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,降低修改程序所造成的风险
事例一:
改造前:
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();}
