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