程序设计原则之依赖倒置原则

一、什么是依赖倒置原则

高层模块的实现尽量不要依赖低层模块的实现,他们应该共同依赖抽象

尽量面向接口或抽象编程,而不是面向实现编程,也就是说要从接口或者抽象扩展,而不是从实现扩展

二、看一个高层模块依赖低层模块的例子

以学习课程为例:

上面这个输出的是学习java课程,如果想要扩展学习前端课程,就得修改低层的Lwl实现类:

上面的软件设计是很不科学的,修改低层实现比较容易造成其他地方出现问题,层次越低与其他模块耦合的可能性越大。

三、采用依赖倒置的原则进行重新设计

1、采用方法传参的形式注入

这样让中间的Lwl类与底层的具体课程类之间解耦合,他们共同依赖同一个接口ICourse,如果再有其他的课程加入只需要重新定义一个新类实现接口就行,这样高层模块的实现不依赖低层模块,他们依赖共同的接口,并且面向接口编程,具体学习哪门课程直接在最上层的应用层中进行处理,此时的类图如下:

2、采用构造方法进行注入

3、采用专门的注入器函数进行注入

看到这里的实现是不是有很熟悉的感觉,Spring的IOC(反转控制),更贴切的应该说是依赖注入,Spring中的service对象与这里的Lwl对象相似,应用层(例如controller层)通过注入Dao层对象到service层,就可以通过service层与Dao层进行交互,而这些都在xml文件中进行配置。这样需要什么样的Dao层对象直接在应用层进行注入即可。

猜你喜欢

转载自blog.csdn.net/Wenlong_L/article/details/82721614
今日推荐