天天看点

Spring关于IOC思想的简要理解一、IOC是什么?二、假设想要在B类中调用A类的add()方法总结

文章目录

  • 一、IOC是什么?
  • 二、假设想要在B类中调用A类的add()方法
    • 1.原始方法(耦合度高)
    • 2.利用工厂模式(耦合度中)
    • 3.IOC底层原理 (耦合度低)
  • 总结

一、IOC是什么?

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,

主要是用来减低计算机代码之间的耦合度。

接下来我们通过1个实例来进一步了解IOC思想。

二、假设想要在B类中调用A类的add()方法

1.原始方法(耦合度高)

代码一处改,则处处改:

//A与B耦合度过高
class A{
	void add(){
		...
	}
}
class B{
	void execute(){
		A test = new A();
		test.add();
	}
}
           

2.利用工厂模式(耦合度中)

代码如下:

//A和B耦合度降低
class A{
	void add(){
		...
	}
}
class B{
	void execute(){
		A test = Factory.getTest();
		test.add();
	}
}
class Factory{
	public static A getTest(){
		return new A();
	}
}
           

3.IOC底层原理 (耦合度低)

//前面与2相同
class A{
	void add(){
		...
	}
}
class B{
	void execute(){
		A test = Factory.getTest();
		test.add();
	}
}
           

在2的基础上,对工厂进行改造。

先利用xml配置文件,配置创建的对象。

再利用反射,进一步降低耦合度。

如下:

xml文件

java文件

class Factory{
	public static A getTest(){
		String classvalue = class属性值;//xml解析, 由此看出路径名变化只会改变classvalue的值,而不会引起源代码的改变,体现出耦合度低。
		Class clazz = Class.forName(classvalue);//通过反射接收对象
		return (A)clazz.newInstance();
	}
}
           

总结

IOC和AOP是Spring的两个核心思想。

IOC把业务层的问题从程序员抛给了用户,也就是所谓的控制反转(变成用户来控制了)。

IOC利用set原理,面对不同的需求时,不用改程序,只要对xml配置文件做动作。

继续阅读