Spring5学习(一):为什么要使用IOC以及IOC容器底层原理

什么是IOC:控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
使用IOC目的:为了耦合度降低

首先提出一个问题:如果现在有两个类,一个是UserService,一个是UserDao。UserDao中有一个方法add(),我们想在UserService的execute()方法中调用add方法,改如何做?

最简单的方式当然是实例化对象,

具体代码:

UserDao.java:

class UserDao{
	
	public void add(){
		
		System.out.println("hahaha");
	}
}

UserService.java:

public class UserService {
    
    public void execute(){
        
        UserDao dao = new UserDao();
        dao.add();
    }

}

但这种方法有个致命的问题,就是耦合度太高。

那我们就要想办法降低耦合度。

首先想到的是工厂设计模式:

我们先建立一个工厂类UserFactory:

public class UserFactory {

    public static UserDao getDao(){

        return new UserDao();
    }
}

将UserService改为:

public class UserService {

    public void execute(){

        UserDao dao = new UserFactory().getDao();
    }
}

思路图:

这样确实降低了UserDao和UserFactory的耦合度,但是UserService和UserDao之间的耦合度还是比较高,并没有使耦合度降到最低。

这就需要用到IOC容器了,下面是IOC容器的原理:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值