IOC实现解耦的原因
今天重新学习了下spring的IOC,其解耦的原因总结如下:
1、使用接口
被注入对象只跟接口打交道,不再跟实际类耦合
2、工厂模式
注入对象使用工厂模式获取,免去new,便于处理到底获取哪个实际类
3、反射
对象是通过反射动态获取的,不需要预先编译
4、配置化
反射读的是配置化的数据,免去每次改动都需要编译
以上几点实现了一个重要解耦特点:
被注入对象跟注入对象在编译时没有半毛钱关系,注入对象是在运行的时候才会确认
核心伪代码:
Animal animal = AnimalFactory.getInstance(配置中读取); animal.bark();
参考:https://blog.csdn.net/tinpo_123/article/details/108718367
#java##学习路径#