spring 与 guice 的区别好玩的好法(转)
?
看下邊對于不同社會形態(tài)下一個人(java對象,調(diào)用者)需要一把斧子(java對象,被調(diào)用者)的例子:
(1)原始社會時,勞動社會基本沒有分工,需要斧子的人(調(diào)用者)只好自己去磨一把斧子,每個人擁有自己的斧子,如果把大家的石斧改為鐵斧,需要每個人都要學(xué)會磨鐵斧的本領(lǐng),工作效率極低。
對應(yīng)Java里的情形是:java程序里的調(diào)用者new一個被調(diào)用者的實例。類耦合度極高,修改維護(hù)煩瑣,效率極低。
(2)工業(yè)社會時,工廠出現(xiàn),斧子不再由普通人完成,而由工廠生產(chǎn),當(dāng)人們需要斧子的時候,可以到工廠購買斧子,無需關(guān)心斧子是怎么制造出來的,如果廢棄鐵斧為鋼斧,只需改變工廠的制造工藝即可,制作工藝是工廠決定的,工廠生產(chǎn)什么斧子,工人們就得用什么斧子。
?對應(yīng)的Java里的情形是:Java程序的調(diào)用者可以以來簡單工廠創(chuàng)建被調(diào)用者,變化點被隔離到了簡單工廠里,雖然耦合度降低,但是調(diào)用者會和工廠耦合,而且需要定位自己的工廠。
(3)近代工業(yè)社會,工廠蓬勃發(fā)展,人們需要什么斧子,只需要提供一個斧子圖形,商家會按照你提供的圖形將你的斧子訂做好,送上門。
對應(yīng)Java里的情形:spring的依賴注入
(4)進(jìn)入按需要分配社會,信息進(jìn)入現(xiàn)代化,人們不再去工廠購買斧子,不再拘泥于需要什么斧子事先畫好什么樣的圖形,只需要打個電話,描述一下需要什么類型的斧子,或許想打造一個物美價廉的斧子,商家會根據(jù)市場零件的價格,計算出最優(yōu)制作工藝,打造最適合的斧子送過來,更加信息化,更加人性化。
?對應(yīng)Java里的情形:基于描述的注入,動態(tài)的,靈活簡單的注入,如:Guice。
-------------------------------------------------------------------------------------------------------------------
很多時候使用起來越簡單的東西,在實際的應(yīng)用中往往會受到各種各樣的約束。就像用.NET和Java做項目一樣,現(xiàn)在的.NET的一些快速開發(fā)模式開始用起來不錯,可用著用著就覺得很受它的約束。還有現(xiàn)在MS發(fā)布的AJAX1.0簡單的使用下它的那些AjaxToolkit中的東西感覺不錯,可一旦大量應(yīng)用到實際項目中出現(xiàn)問題時你就郁悶吧。
轉(zhuǎn)載于:https://www.cnblogs.com/jgtang82/archive/2007/04/14/712764.html
總結(jié)
以上是生活随笔為你收集整理的spring 与 guice 的区别好玩的好法(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [你必须知道的.NET] 第一回:恩怨情
- 下一篇: struct和byte[]相互转换(用M