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容器底層就是物件工廠
相關文章
- 對於Spring中AOP,DI,IoC概念的理解Spring
- 理解Spring(一):Spring 與 IoCSpring
- Spring 高階原始碼核心思想:Spring IoCSpring原始碼
- spring ioc原理解析Spring
- 關於BFC的簡單理解
- 關於RabbitMQ的簡單理解MQ
- 如何理解Spring中的IOC和AOPSpring
- 談談我對Spring IOC的理解Spring
- 深入理解Spring IOC容器Spring
- 簡單談談Spring的IoCSpring
- Spring關於druid使用注入的深度理解SpringUI
- 關於JDK15的簡單理解JDK
- 深入理解Spring IOC原始碼分析Spring原始碼
- Spring基於註解的IoC配置Spring
- [譯] 關於 React Motion 的簡要介紹React
- 關於Java註解(annotation)的簡單理解Java
- 關於MongoDB的簡單理解(二)--Java篇MongoDBJava
- 簡易版的Spring框架之IOC簡單實現Spring框架
- 用最簡單的方式理解 IoC 控制反轉
- 關於MongoDB的簡單理解(一)--基礎篇MongoDB
- 關於spring事務原始碼的一些小理解Spring原始碼
- 關於 sap.ui.base.Object 的簡要介紹UIObject
- 深入理解Spring IOC容器及擴充套件Spring套件
- Spring系列:基於XML的方式構建IOCSpringXML
- Spring的IOC容器Spring
- 簡要理解CommonJS規範JS
- Spring IOC/AOP原理極簡概念入門Spring
- Spring - IOCSpring
- 關於 DOM 的理解
- 關於Vuex的理解Vue
- 關於servlet的理解Servlet
- 關於-this指向的理解
- Java開發必讀,談談對Spring IOC與AOP的理解JavaSpring
- 理解Spring中依賴注入(DI)與控制反轉(IoC)Spring依賴注入
- 造輪子:實現一個簡易的 Spring IoC 容器Spring
- 仿寫一個簡陋的 IOC/AOP 框架 mini-spring框架Spring
- Spring AOP IOCSpring
- Spring-IOCSpring