设计模式设计原则——依赖倒置原则(DIP)

DIP:Dependence Inversion Principle

原始定义:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions。

官方翻译:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。

  • 高层(稳定)不依赖低层(变化),两者依赖抽象(稳定)。高层模块不应该直接依赖于底层模块的具体实现,而应该依赖于底层的抽象。换言之,模块间的依赖是通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。

  • 抽象(稳定)不依赖细节(变化),细节依赖抽象(稳定)。接口和抽象类不应该依赖于实现类,而实现类依赖接口或抽象类。这一点其实不用多说,很好理解,"面向接口编程"思想正是这点的最好体现。

相关推荐
极地星光1 小时前
C++链式调用设计:打造优雅流式API
服务器·网络·c++
Yue丶越2 小时前
【C语言】自定义类型:联合体与枚举
c语言·开发语言
小陈要努力2 小时前
Visual Studio 开发环境配置指南
c++·opengl
程序猿本员2 小时前
5. 实现
c++
Bona Sun2 小时前
单片机手搓掌上游戏机(十五)—pico运行fc模拟器之编译环境
c语言·c++·单片机·游戏机
小尧嵌入式3 小时前
C++基础语法总结
开发语言·c++·stm32·单片机·嵌入式硬件·算法
white-persist3 小时前
【攻防世界】reverse | IgniteMe 详细题解 WP
c语言·汇编·数据结构·c++·python·算法·网络安全
你的冰西瓜3 小时前
C++20 新特性详解:相较于 C++17 的主要改进
开发语言·c++·stl·c++20
止观止3 小时前
C++20 Ranges:告别手写循环,像 SQL 一样操作数据
c++·stl·c++20·编程范式·ranges
郝学胜-神的一滴4 小时前
现代OpenGL窗口管理:GLFW从入门到实战
开发语言·c++·程序人生·图形渲染·个人开发