天天看點

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配置檔案做動作。

繼續閱讀