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

依赖倒置原则

作者头像
Yuyy
发布2022-09-21 10:11:00
3840
发布2022-09-21 10:11:00
举报
文章被收录于专栏:yuyy.info技术专栏

依赖倒置原则

定义

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

个人理解

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

缺点也是老生常谈的类文件数量增加,可维护性下降。所以要在适当场景使用,切勿过度设计。例如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 条评论
热度
最新
推荐阅读
目录
  • 依赖倒置原则
    • 定义
      • 个人理解
        • 示例一
          • 示例二
            • “基于接口而非实现编程”跟“依赖注入”的联系和区别
              • 联系
              • 区别
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档