你还是把依赖倒置、依赖注入和控制反转傻傻分不清楚嘛?

依赖倒置

啥是依赖倒置?依赖倒置是SOLID原则之一,词的字面意思就是将依赖关系的倒置。

其实依赖倒置大家早就会了,这个实际上就是面向接口编程。举个例子,现在电子产品更新换代快,可能没过多久咱们就想换一台电脑玩玩。即使电脑的品牌不同,但我们还是可以正常使用,总不会换个牌子就不会用了吧。

所以如果用代码表示的话,我们用接口IPC来代替具体的类,然后各个类去实现它的programming方法。

 

Copy

public interface IPC{ void programming(); } public class User { private IPC pc; //如果写成private Dell dell; //那我们换成联想的电脑就麻烦了 public User(IPC pc) { this.pc = pc; } public void usePC(){ pc.programming(); } }

为啥叫它倒置呢,因为

依赖倒置1

依赖倒置2

是不是箭头倒过来了呢😁

依赖注入与控制反转

依赖注入是实现控制反转的具体手段,这俩听起来高大上,其实...

 

Copy

public class Main { public static void main(String[] args) { //创建对象 Dell dell=new Dell(); //依赖注入 User user=new User(dell); user.usePC(); } }

依赖注入指的是不在类内部使用new来创建依赖对象,而是将其在外部创建好后,通过构造函数或者赋值函数注入进类中,也就是当参数传进去。

而控制反转就是依赖注入中说的,将依赖类实例化的控制权交给外部逻辑处理。我不心系你这东西的创建,我只关心你提供的功能,一切都按我的标准指定好,拿来用就行。

比如我们笔记本电脑的各个部分是不同厂家生产的,笔记本电脑厂商只需把标准给各个零件生产商,让他们按要求生产,自己最后组装拿来用就好了。这样我们就达到了解耦的目的。

控制反转容器

因为我们在程序设计时采用了依赖注入,那么不可避免的,我们要在程序里写大量的new。但对象的创建与依赖注入跟具体的业务并无关系,我们可不可以将其抽象成框架呢?

于是我们就有了IOC容器或者说依赖注入框架,只需要简单配置一下就可以由框架自动创建对象、管理对象以及依赖注入这些原本需要我们自己来做的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值