情景假設:
1.假如甲生產筆,乙生產筆帽,要想生產乙隻完整的筆,甲肯定需要筆帽啊。於是甲便派乙個人去甲那裡取筆帽,但是不知道什麼原因乙搬家了,那甲這次是不是就要失敗而歸了。第一次搬家,第二次搬家…
2.於是甲很煩啊,每次去乙住的地方,乙都換位置了。於是協商了一下,你以後把生產的筆帽給我放到a城哪個倉庫,以後的用的時候直接去倉庫取
第一種情況發生的原因就是甲過分依賴乙,所以才會產生一些問題
第二種情況解決了問題,但是看著是不是有點麻煩,畢竟魚與熊掌不可兼得。在資料結構中,就經常有犧牲空間換取時間!
當不使用ioc時,使用傳統new的方式
dao層
package com.kang;
public
class
daopublic string selectuser()
}
service層
package com.kang;
public
class
service
}
接下來試想乙個問題:
1.如果資料庫ip位址變了怎麼辦,那我是不是就要修改 dao dao = new dao(「127.0.0.1」)了
2.如果service又增加了乙個dao2,那我是不是就要新增乙個dao dao2 = new dao(ip)了
等等…這樣帶來的問題是不是就很多了,究其原因,就是物件之間的依賴太強了,所以我們需要解耦合,換句話就是說依賴注入,控制反轉。我需要的物件不管你變沒變,需要的時候我就去倉庫(工廠)拿,這樣的話是不是就好多了,是不是就能理解我們為什麼需要spring ioc了
spring Ioc是個什麼東西?
ioc和dip 控制反轉,依賴注入 用一句話來總結解釋 原來是需要什麼東西自己去拿,現在是需要什麼東西就讓別人送過來。即 以前被依賴的物件需要自己建立,現在是ioc容器幫助我們去注入物件,我們拿過來使用物件即可。例 public class newsprovider 以前是 public newsp...
C 複雜的必要性是為什麼?為什麼說C 太複雜?
可以輕易的找出許多文獻說明c 太複雜了,例如學習c 的書籍的厚度。這樣以至於c 的設計者bjarne都曾懷疑具有類的c是不是已經太龐大了。因為,總有大量對語言的新特性的要求 但是c 只在被孤立看待的時候,才會覺得複雜性。設計任何一門語言都是有背景的。c 面向的是這樣的特定使用者 雖然人們都希望有簡單...
為什麼「流行度」是選擇技術方案的必要因素?
做技術管理的人都會面臨技術方案的選擇問題。總的來說,我們是在選擇 最適合 的技術方案,但是什麼是最適合,卻很難給出乙個十分明確的定義。一般來說,我們會考慮以下幾個方面 1 交付的質量 即是否能夠滿足對專案或產品交付物的需求,換句話說,是否能達到交付物的起碼的質量要求。2 交付的速度 也就是說,能否按...