深入淺出Spring(二)

2022-03-28 13:56:30 字數 1434 閱讀 4609

ioc概念

控制反轉(

inversion of control

)是乙個重要的物件導向程式設計的法則來削減電腦程式的耦合問題。 它還有乙個名字叫做依賴注入(

dependency injection

)。ioc

不是什麼技術,它是一種設計模式。

例項演示

為了更好的說明

ioc,我為大家舉乙個簡單的例子,如有這樣乙個描述:某公司新成立了乙個專案組,專案組有若干成員和乙個專案組長,專案組成立後第一次開會上,作為專案組長的小李按照慣例首先做了簡短的自我介紹。

根據上述的描述,如果我們寫出如下**和類圖:

"); } } public class team }

具體類圖如下:

上述的**,應該說基本完成了相關的需求,但是仔細考慮之後就會發現,

上述的**是根據具體的場景描述進行的,並沒有進行抽象,這樣就導致我們不能靈活的安排專案組長去做開場,即根據現在的**,開場自我介紹被繫結給了小李而不能安排給其他人

。為了解決上述的問題,我們引入首先引入leader介面,相關**和類圖如下:

"); } } public class team }

具體類圖如下:

雖然上述的**可以讓我們安排給其他成員開場,但是我們可以看出

team

類同時依賴

leader

介面和li

類,並沒有達到我們所期望的

team

僅僅依賴於

leader

介面的目的,如何解決這個問題呢?當然是引入

boss

,由boss

決定具體由誰擔任專案組長。具體類圖和**如下:

"); } } public class team } public class boss }

具體類圖如下:

通過以上**和圖示,我們可以看出,

通過引入老闆類,我們將專案小組和具體由誰擔任專案組長進行解耦

。對應上述例子,我們再來講解一下

ioc,ioc從字面上看分為控制和反轉,控制在上面的例項中就是具體由誰擔任專案組長,而反轉就是將決定誰擔任專案組長轉移到

boss

類中。通俗理解就是將介面的具體實現類(

li)的控制權從呼叫類(

team

)中分離轉交給第三方(

boss

)決定。

深入淺出Spring(一)Spring概述

現在很多的企業級專案中基本上都會用到了spring框架,那麼為什麼會出現spring,spring是什麼?這次的博文我主要為大家簡單介紹一下spring。我們都知道在2003年spring興起之前,企業普遍使用j2ee技術來開發企業級應用,為什麼用j2ee呢?主要原因有以下幾個 1 j a本身的跨平...

深入淺出MySQL筆記(二)

本筆記為學習該書所記,便於複習。包含第三 四章筆記。資料型別與運算子 toc 整數型別 zerofill unsigned auto increment 浮點數型別 定點數型別 decimal m,d show warningsl 位型別bit m hex data datatime timesta...

深入淺出MySQL索引(二)

先搜尋二級索引 非主鍵索引 找到主鍵,再到主鍵索引樹的過程,稱為回表。在下面這個表t中,如果我執行 select from t where k between 3 and 5,需要執行幾次樹的搜尋操作,會掃瞄多少行?create table t id int primary key,k int no...