设计原则-------依赖倒转原则

依赖倒转原则(DIP)强调高层模块不依赖于底层模块,而是依赖于抽象。通过使用接口和抽象类,模块间的耦合度降低,便于复用和维护。该原则通过实例化不同实现来满足不同需求,避免了硬编码特定实现的限制,提高了系统的灵活性和扩展性。

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

设计原则-------依赖倒转原则(DIP)

依赖倒转原则:抽象不应该依赖细节,细节应该依赖抽象。

 

通俗地说,就是要针对接口编程,而不要对具体实现编程。比如无论主板、CPU、内存、硬盘都是在针对接口设计的,如果针对实现来设计,内存就要对应到具体的品牌的主板,就会出现换内存需要把主板也换掉的尴尬。
   
1. 高层模块不应该以来底层模块。两个都应该以来抽象。
2. 抽象不应该以来细节。细节应该以来抽象。

为什么要叫倒转?
     面向过程的开发时,为了使得常用代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目时,去调用这些底层的函数就可以了。比如我们做的项目大多要访问数据库,所以我们就把访问数据库的代码写成了函数,每次做新项目时就去调用这些函数。这也就叫做高层模块以来底层模块。
    我们要做新项目时,发现业务逻辑的高层模块都是一样的,但客户却希望使用不同的数据库或存储信息方式,这时就出现麻烦了。我们希望能再次利用这些高层模块,但 高层模块都是与底层的访问数据库绑定在一起的,没办法复用这些高层模块,这就非常糟糕了。 
    就像刚才说的,PC里如果CPU、内存、硬盘都需要以来具体的主板,主板一怀,所有的部件就都没用了,这显然不合理。反过来,如果内存坏了,也不应该造成其他部件不能用才对。而如果不管高层模块还是底层模块,它们都依赖于抽象,具体一点就是接口或抽象类, 只要接口是稳定的,那么任何一个的更改都不用担心其他收受到影响,这就使得无论高层模块还是底层模块都可以很容易地被复用。
    为什么依赖了抽象的接口或抽象类,就不怕更改呢? 里氏代换原则给我们解释了这一点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值