我們回顧一下計算機的發(fā)展史,從最初第一臺計算機的占地面積達170平方米,重達30噸,到現如今的個人筆記本,事物更加輕量功能卻更加豐富,這是事物發(fā)展過程中的一個趨勢,在技術領域中同樣也是如此,企業(yè)級JavaBean(Enterprise JavaBean ,EJB)在創(chuàng)建之初是非常成功,但是時間一久人們便開始追逐更加方便更加簡易和輕量級的技術框架實現,于是Spring就應運而生,并且Spring一直開始不斷地涉及到其他領域(這里就不再多詳談了),而Spring的精髓當中就包括控制反轉和依賴注入。
淺談控制反轉(Inversion of Control,IOC)
我們首先先來了解一下控制二字,也就是在控制“正”轉的情況下,在任何一個有請求作用的系統(tǒng)當中,至少需要有兩個類互相配合工作,在一個入口類下使用new關鍵字創(chuàng)建另一個類的對象實例,這就好比在面向對象編程的思想下,“我“充當一個入口類,在這個入口類中,我每次吃飯的時候都要買一雙一次性筷子(每一次使用都要new一次),在這樣的關系下,是”我“(即調用者)每次都要”主動“去買一次性筷子(另一個類),我對筷子說你老老實實的過來我的手上,是我控制了筷子,那好,在這種控制正轉的關系下,放在現實生活當中,肯定是不現實的,而且人是懶惰的,他總會去創(chuàng)造出更加方便自己生活的想法,更確切的做法是,買一雙普通的筷子(非一次性),把他放在一個容器當中(在Spring中叫做IOC容器),你需要使用的時候就對容器說:IOC我想要用筷子(向容器發(fā)出請求),接著筷子就會”注入“到的手上,而在這個過程當中,你不再是控制方,反而演變成一名請求者(雖然本身還是調用者),依賴于容器給予你資源,控制權坐落到了容器身上,于是這就是人們俗稱的控制反轉。
初涉依賴注入(Dependency Injection)
同樣接著上面的例子,在控制反轉的統(tǒng)一下,筷子是怎么來到我的手上(即我們是如何獲得請求的類),這就是一個依賴注入的過程。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數據結構來看看(二) 2017-07-26