spring IOC DI形象比喻~

提到Spring就不能不說控制反轉Ioc//Inversion of Control 
和依賴注射DI//Dependency Injection 
什麼叫控制反轉呢? 
套用好萊塢的一句名言就是:你待著別動,到時我會找你。 
什麼意思呢?就好比一個皇帝和太監 
有一天皇帝想幸某個美女,於是跟太監說,今夜我要寵幸美女 
皇帝往往不會告訴太監,今晚幾點會回宮,會回哪張龍牀,他只會告訴太監他要哪位美女 
其它一切都交由太監去安排,到了晚上皇帝回宮時,自然會有美女出現在皇帝的龍牀上 
這就是控制反轉,而把美女送到皇帝的寢宮裏面去就是注射 
太監就是是框架裏面的注射控制器類BeanFactory,負責找到美女並送到龍牀上去 
整個後宮可以看成是Spring框架,美女就是Spring控制下的JavaBean 
而傳統的模式就是一個飢渴男去找小姐出臺 
找領班,幫助給介紹一個云云,於是領班就開始給他張羅 
介紹一個合適的給他,完事後,再把小姐還給領班,下次再來 
這個過程中,領班就是查詢上下文Context,領班的一個職能就是給客戶找到他們所要的小姐 
這就是lookup()方法,領班手中的小姐名錄就是JNDI//Java Naming and Directory Interface 
小姐就是EJB,飢渴男是客戶端,青樓是EJB容器 
看到區別了麼?飢渴男去找小姐出臺很麻煩,不僅得找,用完後還得把小姐給還回去 
而皇帝爽翻了,什麼都不用管,交給太監去處理,控制權轉移到太監手中去了 
而不是皇帝,必要時候由太監給注射進去就可以了 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章