当前位置: 首页 > news >正文

设计原则 | 依赖转置原则

一、依赖转置原则(DIP:Dependence Inversion Principle)

1、原理

  • 高层模块不应该依赖低层模块,二者都应该依赖于抽象
  • 抽象不应该依赖于细节,细节应该依赖于抽象

2、层次化

Booch曾经说过:所有结构良好的面向对象软件架构都具有清晰的层析定义,每个层次通过一个定义良好的、受控的接口向外提供了一组内聚的服务。下面给出了一个简单的层次化结构方案,如下:

在这里插入图片描述

下面展示的是一个更为合理的方案,每个较高层次都为它所需要的服务声明一个抽象接口,较低的层次实现了这些抽象接口。每个高层类都通过该抽象接口使用下一层,这样高层就不依赖于低层,低层反而依赖于在高层中声明的抽象服务接口,这样就解除了高层对于低层模块的依赖,如下:

在这里插入图片描述

2、为什么叫"转置"

转置有下面两层含义

  • 依赖关系的转置
  • 接口所有权的转置

传统的软件开发方法,比如结构化的分析与设计。倾向于创建一些高层模块依赖低层模块的软件架构。这样的软件架构存在一个很严重的问题,一旦低层模块变动高层模块也会受影响。

http://www.lryc.cn/news/254116.html

相关文章:

  • 前端开发实用技巧与经验分享
  • 推荐一款Excel快速加载SQL的插件,方便又好用
  • Docker快速入门(docker加速,镜像,容器,数据卷常见命令操作整理)
  • http和https的区别有哪些
  • 使用Keil-MDK生成*.bin格式可执行文件
  • 基于springboot+vue篮球联盟管理系统源码
  • 分页助手入门以及小bug,报sql语法错误
  • Java中的并发编程:深入理解CountDownLatch
  • Windows 安装 flash-attention 和 bitsandbytes
  • AHB 与 DMA
  • React使用echarts并且修改echarts图大小
  • 【Q6-30min】
  • C++之类和对象(下)
  • 微服务开发:断路器详解
  • Leetcode—383.赎金信【简单】
  • 爬虫-xpath篇
  • Oracle初始化参数文件pfile和spfile
  • zookeeper 客户端常用命令简单记录(实操课程系列--watcher功能测试)(发布订阅功能测试)
  • Scrapy爬虫数据存储为JSON文件的解决方案
  • 计算机设计大赛 选题推荐
  • 基于springboot,vue高校图书馆管理系统
  • 如何打造更高效、安全、灵活的企业网络组网方案
  • MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试
  • Kubernetes Service控制器详解以及切换为ipvs代理模式
  • 搭建samba服务
  • 总结vue3 的一些知识点:MySQL 排序
  • 从零开始:PHP实现阿里云直播的简单方法!
  • 【数据结构】——二叉树特点
  • C++的类和对象(一)
  • 基于单片机自动饮料混合机控制系统设计