前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向对象的设计原则-"依赖倒置原则"

面向对象的设计原则-"依赖倒置原则"

作者头像
别明天就今天吧
发布2020-09-07 19:33:20
6690
发布2020-09-07 19:33:20
举报
文章被收录于专栏:别明天就今天吧

Dependence Inversion Principle,DIP"依赖倒置原则",依赖倒置的原始定义是:

Hign level modules should not depend upon low modules.Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.

翻译过来,包含三层含义:

1.高层模块不应该依赖底层模块,两者都应该依赖其抽象;

2.抽象不应该依赖细节;

3.细节应该依赖抽象;

用JAVA语言来解释下上面的表述:

高层模块依赖低层模块:高层模块需要调用底层模块的方法;

高层模块依赖抽象层:高层模块基于抽象层编程;

低层模块依赖抽象层:低层模块继承或者实现抽象层;

细节:实现接口或者继承抽象类而产生的类;

模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的;接口或者抽象类不依赖于实现类;实现类依赖接口或者抽象类,核心思想是面向接口编程;

采用依赖倒置原则可以减少类之间的耦合性,提高系统的稳定性;

举个例子:

对象的依赖关系有三种方式来传递:

1.接口注入:接口声明依赖对象

2.构造函数注入:构造函数传递依赖对象

3.Setter依赖注入:设置Setter方法声明依赖

最佳实践

依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块彼此独立,不互相影响,实现模块间的松耦合,我们在项目中应该尽量做到:

1.每个类尽量都有接口或者抽象类,或者抽象类和接口两者都具备;

2.变量的表面类型尽量是接口或者抽象类;

3.任何类都不应该从具体派生;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 别明天就今天吧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档