IOC及Bean容器
一、接口及面向接口编程
1、接口
(1) 用于沟通的中介物的抽象化。
(2) 实体把自己提供给外界的一种抽象化说明,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。
(3) 对应Java接口即声明,声明了哪些方法是对外公开提供的。
注:接口:只能有声明,不能有实现;抽象类:既可以有声明,也可以有实现;普通类:只能是完全的实现。
(4) 在Java8中,接口可以拥有方法体。
2、面向接口编程
(1) 结构设计中,分清层次及调用关系,每层只向外(上层)提供一组功能接口,各层间仅依赖接口而非实现类。
(2) 接口实现的变动不影响各层间的调用,这一点在公共服务中尤为重要。
(3) "面向接口编程"中的“接口”是用于掩藏具体实现和实现多态性的组件。
(4) 例子:
OneInterface.java(接口)
package com.imooc.ioc.interfaces;
public interface OneInterface{
String hello(String word);
}
OneInterfaceImpl.java(实现类)
package com.imooc.ioc.interfaces;
public class OneInterfaceImpl implements OneInterface{
public String hello(String word) {return "Word from interface \"OneInterface\":" + word;
}
}
Main.java(Main方法调用)
package com.imooc.ioc.interfaces;
public class Main {
public static void main(String[] args) {
OneInterface oif = new OneInterfaceImpl();
System.out.println(oif.hello("word."));
}
}
运行输出:Word from interface "OneInterface":word.
二、什么是IOC
. IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。
. DI(依赖注入)是其一种实现方式
. 目的:创建对象并且组装对象之间的关系
依赖注入:所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
IOC房屋中介:
房屋中介 IOC
. 找中介 . 找IOC容器
. 中介介绍房子 . 容器返回对象
. 租房、入住 . 使用对象
三、Spring中Bean的配置
上面的接口在Spring中的配置方式
例子: