加载中...
依赖倒置原则是面向对象设计 SOLID 五大原则之一,主张高层模块和低层模块都应依赖于抽象,而抽象不应依赖具体实现。它由罗伯特·马丁提出,通过面向接口编程降低模块耦合,提升系统的可扩展性。

| 类型 | 面向对象设计原则 |
| 所属体系 | SOLID |
| 提出者 | 罗伯特·马丁 |
| 核心主张 | 依赖抽象而非细节 |
依赖倒置原则(Dependency Inversion Principle,简称 DIP)是面向对象设计 SOLID 原则中的一条。它包含两层含义:高层模块不应依赖低层模块,二者都应依赖于抽象;抽象不应依赖细节,细节应依赖抽象。
该原则由软件工程师罗伯特·马丁(Robert C. Martin)提出。在传统设计中,高层的业务逻辑往往直接依赖低层的具体实现,一旦底层变动,高层就要随之修改。依赖倒置通过引入抽象接口,让高层与低层都面向接口编程,从而切断了这种直接的强耦合。
依赖倒置原则常与依赖注入配合落地。依赖倒置是设计层面的目标,指明应依赖抽象;依赖注入则是实现该目标的具体手段,负责把符合抽象的具体实现在运行时传给使用者。
该原则被广泛用于分层架构、插件体系与可替换组件的设计中。例如业务层定义一个存储接口,数据访问层去实现它,业务层便无需知道底层用的是哪种数据库,更换实现时业务代码几乎不用改动。它也是众多 IoC 容器和框架设计的理论基础。
问:依赖倒置和依赖注入有什么关系?答:依赖倒置是一条设计原则,强调依赖抽象;依赖注入是实现这一原则的技术手段,负责把具体依赖传入使用者。前者是目标,后者是方法。
问:是不是所有依赖都要抽象化?答:不是。对稳定且不太可能替换的基础库或标准类型,强行抽象反而增加复杂度;应主要对易变、需要替换或需要测试隔离的依赖引入抽象。

| 类型 | 面向对象设计原则 |
| 所属体系 | SOLID |
| 提出者 | 罗伯特·马丁 |
| 核心主张 | 依赖抽象而非细节 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧