首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >依赖倒置原则

依赖倒置原则

作者头像
Yuyy
发布2022-09-21 10:11:00
发布2022-09-21 10:11:00
5080
举报

依赖倒置原则

定义

高层模块不要依赖低层模块,应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。

个人理解

避免对具体实现类的直接引用,使其付出更小的代价达到扩展的目的,与开闭原则照应。

缺点也是老生常谈的类文件数量增加,可维护性下降。所以要在适当场景使用,切勿过度设计。例如service层定义接口,实际项目中,大部分service只有单一实现,没有定义接口的必要。

示例一

控制反转是一种思想,用来指导框架层面的设计。“控制”指的是对程序执行流程的控制,“反转”指的是由程序员控制转为框架控制。

依赖注入是控制反转具体的一种实现,通过构造函数、set方法将依赖对象注入。依赖注入框架不只有Spring,还有很多,例如Google Guice

示例二

Tomcat和web应用,Tomcat是高层模块,web应用是底层模块。两者没有直接依赖,而是依赖于Servlet规范。

Servlet规范不依赖于Tomcat容器和web应用程序的具体实现。

“基于接口而非实现编程”跟“依赖注入”的联系和区别

联系

两者都是从外部传入对象。

区别

前者强调的是接口,遵守协议,不依赖于具体实现。后者强调的是对象的创建在外部,而不是内部new出来的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 依赖倒置原则
    • 定义
    • 个人理解
    • 示例一
    • 示例二
    • “基于接口而非实现编程”跟“依赖注入”的联系和区别
      • 联系
      • 区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档