Spring中IOC/DI的松耦合

Spring中IOC/DI的松耦合原理


为什么使用spring就能实现松耦合? 容器管理对象,与自己new对象有什么区别?

伪代码示例:
1.比如我们需有一个add方法,需要调用某个对象(假设名字是userServiceImp)的executeAdd方法:

如果没有IOC/DI:

private UserServiceImp userServiceImp = new  UserServiceImp();
public void add(){
	userServiceImp.executeAdd();
}

那我们想一下,如果我们不想使用UserServiceImp的方法了,我想换一个实现类,怎么办呢? 那就得各种改代码了,还得更改上面的引用. 耦合度太高.

2.我们使用IOC/DI, 创建一个接口(UserService),然后将接口的实现类,都交给spring容器管理,在想更换实现类的时候,直接就将其注入给接口就可以了.

使用IOC/DI

@Autowired
UserService userService;
public void add(){
	userService.executeAdd();
}

(左边一起来个伪代码,右边再画个图…)
在这里插入图片描述
这样.我们只要将对象交给spring容器(IOC), 再将实现类注入给接口(DI),就可以做到更改实现类的效果,实现类想怎么换就怎么换.

实现解耦.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值