Spring關於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檔案
<bean id = "test" class = "路徑名"></bean>
java檔案
class Factory{
public static A getTest(){
String classvalue = class屬性值;//xml解析, 由此看出路徑名變化只會改變classvalue的值,而不會引起原始碼的改變,體現出耦合度低。
Class clazz = Class.forName(classvalue);//通過反射接收物件
return (A)clazz.newInstance();
}
}
總結
IOC即控制反轉,把物件的建立和呼叫交給Spring進行管理,降低了程式碼的耦合度。
IOC思想基於IOC容器完成,IOC容器底層就是物件工廠
相關文章
- IoC-spring 的靈魂(帶你輕鬆理解IOC思想及bean物件的生成過程)SpringBean物件
- 對於Spring中AOP,DI,IoC概念的理解Spring
- 關於Spring AOP與IOC的個人思考Spring
- Spring IOC之神理解Spring
- Spring 高階原始碼核心思想:Spring IoCSpring原始碼
- 理解Spring(一):Spring 與 IoCSpring
- spring ioc原理解析Spring
- Spring(二):IOC和DI的理解Spring
- 談談對Spring IOC的理解Spring
- 關於Ioc的思考
- 關於BFC的簡單理解
- 關於RabbitMQ的簡單理解MQ
- 深入理解Spring IOC容器Spring
- 如何理解Spring中的IOC和AOPSpring
- 談談我對Spring IOC的理解Spring
- 簡單談談Spring的IoCSpring
- 簡要理解 - NSPredicate
- [譯] 關於 React Motion 的簡要介紹React
- 關於JDK15的簡單理解JDK
- Spring基於註解的IoC配置Spring
- 深入理解Spring IOC原始碼分析Spring原始碼
- spring概念理解之IOC(控制反轉)Spring
- 自己簡單實現Spring的IOC原理Spring
- Spring關於druid使用注入的深度理解SpringUI
- ORACLE關於執行計劃的簡要分析Oracle
- 關於Java註解(annotation)的簡單理解Java
- 關於MongoDB的簡單理解(二)--Java篇MongoDBJava
- 簡易版的Spring框架之IOC簡單實現Spring框架
- IOC理解
- 用最簡單的方式理解 IoC 控制反轉
- Spring IOC容器-註解的方式【更簡化】Spring
- 關於 sap.ui.base.Object 的簡要介紹UIObject
- 關於MongoDB的簡單理解(一)--基礎篇MongoDB
- Spring系列:基於XML的方式構建IOCSpringXML
- 深入理解Spring IOC容器及擴充套件Spring套件
- 關於jdon的ioc的入門問題
- 關於前端開發中的“收口”思想前端
- 關於spring事務原始碼的一些小理解Spring原始碼