设计模式设计原则——依赖倒置原则(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。

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

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

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

相关推荐
T___5 小时前
从入门到放弃?带你重新认识 Headless UI
前端·设计模式
用户686916134905 小时前
哈希表实现指南:从原理到C++实践
数据结构·c++
葬送的代码人生5 小时前
AI Coding→像素飞机大冒险:一个让你又爱又恨的小游戏
javascript·设计模式·ai编程
大老板a6 小时前
c++五分钟搞定异步处理
c++
羑悻的小杀马特9 小时前
从信息孤岛到智能星云:学习助手编织高校学习生活的全维度互联网络
c++·学习·生活·api
C++ 老炮儿的技术栈10 小时前
VSCode -配置为中文界面
大数据·c语言·c++·ide·vscode·算法·编辑器
祁同伟.10 小时前
【C++】类和对象(上)
c++
90wunch10 小时前
更进一步深入的研究ObRegisterCallBack
c++·windows·安全
刃神太酷啦10 小时前
聚焦 string:C++ 文本处理的核心利器--《Hello C++ Wrold!》(10)--(C/C++)
java·c语言·c++·qt·算法·leetcode·github
DARLING Zero two♡10 小时前
C++数据的输入输出秘境:IO流
c++·stl·io流