反射控制IoC的概念
来源:互联网 发布:吉他伴奏软件 编辑:程序博客网 时间:2024/05/17 07:42
反向控制也称为依赖注入,是一种降低对象耦合的设计思想。一般在分层体系结构中都是上层调用下层,调用者依赖被调用者。通过IoC的方式,可以使上层不再依赖下层接口。它通过注入一个实例化对象达到解耦的目的。使用这种方法的对象不会被显式调用,而是由IoC容器提供。
对于实现基类的不同实现类问题,AbstractClass c1=new SubClassA()能够完成功能。但问题在于换用其它基类实现类如SubClassB时代码需要大量改动。
较好的办法是用工厂设计模式将创建对象的行为包装起来,获取业务类只需要调用Factory.getClass()获取。具体由哪个实现类创建对象,的代码写在Factory中。当更换业务类中需要重写Factory的逻辑即可。
最好的办法是采用Ioc的设计思想,由Spring容器配置文件创建调用者对象,然后把被调用者对象的实例通过”构造注入”或”set注入”到调用者对象。
SpringConfig.xml配置文件(构造注入的方式):
<beans> <bean id="transfer" class="TransferClass" singleton="false"> <constructor-arg> <ref bean="abstract" /> </constructor-arg> </bean> <bean id="abstract" class="AbstractClass" sinleton="false" /></beans>业务类代码:public class TransferClass { private AbstractClass c1; public TransferClass(AbstractClass c1){ this.c1=c1; } //使用c1的代码}
使用调用类的代码:
ApplicationContext ac=new FileSystemXmlApplicationContext("SpringConfig.xml");TransferClass tc=(TransferClass)ac.getBean("abstract");
Ioc反射控制的优点:
1) 无需关心对像的创建,只需要修改配置文件就能完成实现类的替换。
2) 通过配置文件能知道注入的实例对象,易于测试。
Ioc反射控制的缺点:创建对象的过程变复杂了,且通过反射机制实例化对象性能有所下降。
0 0
- 反射控制IoC的概念
- IOC概念,反射例子
- 控制反转(IOC)和依赖注入(DI)的概念
- IOC的概念
- aop,ioc的概念
- 利用反射简单模拟Spring的控制反转(Ioc)和依赖注入(DI)
- Spring的控制反转(IoC)和面向切面编程(AOP)的概念浅析。
- 关于spring的两个概念:IoC(控制反转) ,DI(依赖注入)
- (转)关于spring的两个概念:IoC(控制反转) ,DI(依赖注入)
- IOC和AOP的概念
- Spring 原理:IOC的概念
- 反射的概念
- 反射的概念
- Java反射的概念
- Java反射的概念
- 控制反转(IoC) 的理解
- Spring的IOC(反向控制)
- JAVA-反射机制(3)-IoC(控制反转)原理
- C++ wifi共享工具
- 机器人局部避障的动态窗口法(dynamic window approach)
- iOS第三方直播的集成
- WebSocket协议-个人笔记
- c#命名规范(转载)
- 反射控制IoC的概念
- 第二类斯特林数
- 大数储存
- Apache、Tomcat与Catalina作为软件名字的含义与关系
- AOP概念
- 【jzoj4884】【图的半径】
- spring的controller默认是单例还是多例
- Spring框架概念
- 2016.11.10