设计模式: 依赖倒置 DIP

本文阐述了依赖倒置原则的概念,即高层次模块依赖抽象而非具体实现,具体实现依赖抽象。通过对比常见设计流程,强调先定义抽象接口的重要性,确保代码的可维护性和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dependency inversion principle

高层次的模块不应该依赖 于 低层次的模块,两者都应该依赖于 抽象接口。

代码的设计,就应该像操作系统的设计,高层次的模块,比如APP,不依赖于这个系统是linux 还是windows的具体实现,而仅仅依赖于操作系统这个抽象接口,这样的话,APP业务逻辑的更迭,完全不用费心去考虑,面对不同的操作系统的具体实现,我们要做什么适配,这个为了适配不同平台的考虑完全是浪费精力,效率也低。所以,我们要设计一个模块,向外提供一个抽象的接口,那么外部的模块就容易和我们配合。

抽象的接口不应该依赖于具体的实现,而具体的实现依赖于抽象的接口

这个可能和我们常见的【熟能生巧】成为反比,平时我们设计了很多具体实现,才慢慢发现,其中的道,于是后来就抽象出来一种灵巧的方式,完成我们的工作;

但是在快速,协作的开发环境中,我们最好的方式是: 先抽象好,再去落地具体实现。

总结:

我们设计抽象接口的时候,不应该是凭借众多具体的实现,再慢慢提取出一个现有众多实现的一个抽象,而是我们先提出一个约定,也就是先提出一个抽象的接口,(这个接口可能不能满足具体实现的某个功能,但是接口隔离原则允许我们这样做),然后我们再根据这个抽象接口去设计具体的实现;这样做的好处就是,我们后期只需要面对一个单独的抽象接口进行业务的更迭,变化,而不用去考虑业务的改变对已有代码的具体实现的影响。具体的实现在约定的框架下做任何变动,不会影响更上层的设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值