開(kāi)發(fā)出高質(zhì)量的系統(tǒng)
在我的這篇文章http://www.tkk7.com/dreamstone/archive/2006/11/04/79026.html中寫(xiě)了為什么不要使用Java的lazy loading ,即使是double-check也解決不了問(wèn)題,但是有人解決了這個(gè)問(wèn)題。佩服啊。實(shí)在是巧妙,如此簡(jiǎn)單注意:在多個(gè)虛擬機(jī)的情況下這個(gè)方法還是不能用的,但是一般情況下是可以的。實(shí)現(xiàn)方式:
這個(gè)寫(xiě)法的發(fā)明者是Google公司的Bob lee。他還寫(xiě)了個(gè)輕量級(jí)IoC容器,據(jù)說(shuō)不要配制文件,性能比spring快100倍。感覺(jué)100倍有些夸張,不過(guò)可以看看。
posted on 2007-02-27 20:10 dreamstone 閱讀(6993) 評(píng)論(14) 編輯 收藏 所屬分類: 設(shè)計(jì)模式
多此一舉,Spring解決的問(wèn)題不是性能問(wèn)題! 回復(fù) 更多評(píng)論
這么說(shuō)就無(wú)語(yǔ)了。 首先什么叫多此一舉,哪些東西不是多此一舉? 雖然有可能他的實(shí)現(xiàn)不能商業(yè)應(yīng)用,但既然寫(xiě)了這個(gè)東西就“有可能”有他存在的價(jià)值。 另外我還沒(méi)看他寫(xiě)的東西,不能說(shuō)他好或者壞,但個(gè)人比較反感根本沒(méi)有了解就發(fā)表誤導(dǎo)性言論的做法。 最后webwork在新的版本已經(jīng)加入了他寫(xiě)的IOC容器。 回復(fù) 更多評(píng)論
有時(shí)間找他寫(xiě)的IoC來(lái)研究研究,學(xué)習(xí)學(xué)習(xí) 回復(fù) 更多評(píng)論
這種以 Initialization on Demand Holder (IODH) 的 lazy loading 方式只能, 也只可以應(yīng)用在Classloader scope 的 static scope singleton 上對(duì)特定存取區(qū)域,或 "不確定" Classloader 情況下只能用回 synchronized 方法(根據(jù) Bob lee 本人的 blog, 引述 Effective Java 一書(shū)的說(shuō)明)另, 這方法 "不是" Bob lee 本人發(fā)明的.他也只是讀回來(lái)的, 他在 blog 中也有提到 回復(fù) 更多評(píng)論
to Dennis: 謝謝提醒,另問(wèn)一下什么情況下這個(gè)方式會(huì)失效,能不能舉個(gè)例子說(shuō)明一下? 回復(fù) 更多評(píng)論
支持一下, 不錯(cuò)! 回復(fù) 更多評(píng)論
嗯,找了一下Effective Java,在Item 48 找到了,果然不是Bob lee發(fā)明的,不過(guò)這種寫(xiě)法還是值得借鑒。另外,對(duì)與Effective Java中解釋的話有些不了解, 誰(shuí)能給解釋一下: 這句:The only shortcoming of the idiom is that it does not work for instance fields ,only for static instance fields 雖然字面意思知到,但是還是不明白他講的實(shí)際問(wèn)題。 回復(fù) 更多評(píng)論
另外這里關(guān)于這個(gè)問(wèn)題還有一些討論, http://weblogs.java.net/blog/kirillcool/archive/2005/08/how_single_is_y.html 而作者的做法居然是用程序?qū)懘a,臨時(shí)編繹,也算夠走火入魔的。不過(guò)下邊的討論還是不錯(cuò)的。 回復(fù) 更多評(píng)論
這樣的寫(xiě)法不是新鮮主意了,在讀《設(shè)計(jì)模式精解》關(guān)于singleton那章時(shí)特意查過(guò)。 回復(fù) 更多評(píng)論
to dennis: 建議你如果回文章的話盡量提供一下支持你自己觀點(diǎn)的資料。 不知道你說(shuō)的“ 對(duì)特定存取區(qū)域,或 "不確定" Classloader 情況下”是什么情況 不然的話看文章的人懂得懂了,不懂的還不懂。 謝謝。如果我找到會(huì)補(bǔ)上。 回復(fù) 更多評(píng)論
@dreamstone sorry,我并沒(méi)有別的意思。 我是在讀《設(shè)計(jì)模式精解》時(shí)那章singleton時(shí)提到double-check也無(wú)法解決多線程實(shí)現(xiàn)singleton模式的問(wèn)題時(shí),特意google了下代碼,這是我收藏夾里的文章:http://www.j2medev.com/Article/Class3/pattern/200511/1004.html 回復(fù) 更多評(píng)論
找到了什么情況下會(huì)有多個(gè)ClassLoader了,這篇文章中有些內(nèi)容講了為什么會(huì)有多個(gè)ClassLoader。 http://www.tkk7.com/dreamstone/archive/2007/02/28/101183.html 另to dennis: 謝謝提供資源,希望能提出更多問(wèn)題,多交流。。 回復(fù) 更多評(píng)論
純扯淡 回復(fù) 更多評(píng)論
學(xué)習(xí)。 回復(fù) 更多評(píng)論
Powered by: BlogJava Copyright © dreamstone