IOC理论推导
1.UserDao接口
2.UserDaoImpl实现类
3.UserService业务接口
4.UserService业务实现类
在之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改源代码!如果程序代码量十分大,修改一次的成本代价十分高昂!
我们用一个set接口实现
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
之前,程序是主动创建对象! 控制权在程序员手上。
使用了set注入后,程序不再具有主动性,而是变成了被动的接收对象。
这种思想从本质上解决了问题,我们程序猿不需要再去管理对象的创建了。系统的耦合性大大降低,可以更加专注的在业务的实现上!
控制反转(Inversion of
Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency
Injection,简称DI),还有一种方式叫“依赖查找”(Dependency
Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。