不要求所有代码都遵循设计原则,要考虑人力、时间、成本、质量,不刻意追求完美
意义
提高代码的可读性、可维护性、可复用性。
依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并能够降低修改程序所造成的风险。
接下来看一个案例,还是以课程为例,先来创建一个类 Tom:
xxxxxxxxxx
public static void main(String[] args) {
Tom tom = new Tom();
tom.studyJavaCourse();
tom.studyPythonCourse();
}
随着学习兴趣的暴涨,现在 Tom 还想学习AI 人工智能的课程。这个时候,业务扩展,我们的代码要从底层到高层(调用层)一次修改代码。在 Tom 类中增加studyAICourse()的方法,在高层也要追加调用。如此一来,系统发布以后,实际上是非常不稳定的,在修改代码的同时也会带来意想不到的风险。接下来我们优化代码,创建一个课程的抽象ICourse 接口:
然后写JavaCourse 类:
再实现PythonCourse 类:
修改 Tom 类: