依赖倒置原则(DIP)
定义:高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
好处:稳定性、可维护性、可扩展性。
概述:DI就是依赖倒置的意思,也可称为控制反转,我们以前编写结构化的程序当中,也就是C语言这样的语言时,高层模块依赖于底层模块,也就是调用者和被调用者的关系,调用者要依赖于被调用者,被调用者编写的一些功能和服务,会影响高层,一旦底层发生了变化,也就是被调用者发生了变化,就直接影响了高层也就是调用者。这样的设计,很难保证他的稳定性,经常会发生变化,代码维护起来也非常的困难。
但是在面向对象的设计中,这种设计应该反过来,底层和高层不应该有这样的依赖关系,高层不应该依赖于底层,底层也不应该依赖于高层。底层和高层都应该依赖于抽象类或接口,底层变化,不影响高层。依赖倒置原则:本质上是在要求我们“面向接口编程”,它要求每个类尽量都来自接口或抽象类,变量定义尽量使用抽象类或接口,不要使用具体类,这样便于扩展,尽量不要覆盖父类已经实现好的方法。接口负责公共方法的声明,抽象类负责公共方法实现的定义。
开闭原则和依赖倒置原则是目标和手段的关系。开闭是目标,可以通过依赖倒置来实现对功能扩展开放,对修改关闭。
因为依赖倒置原则和开闭原则是手段和目标的关系,也就是依赖倒置原则的好处和开闭原则的好处基本上是一致的,它的好处就是可以减少类之间的耦合度,进一步提高系统的稳定性、可维护性和可扩展性,只不过依赖倒置原则建议尽量使用抽象类和接口,而开闭原则突出的是使用了抽象类和接口之后的效果!
时间: 2024-10-10 09:33:07