<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 55  文章 - 187  trackbacks - 0
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(12)

    隨筆分類(lèi)

    隨筆檔案

    groovy

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    關(guān)于這個(gè)問(wèn)題,下面是一些同仁的觀點(diǎn):

    觀點(diǎn)一:(單例
    單例模式比靜態(tài)方法有很多優(yōu)勢(shì):
    首先,單例可以繼承類(lèi),實(shí)現(xiàn)接口,而靜態(tài)類(lèi)不能(可以集成類(lèi),但不能集成實(shí)例成員);
    其次,單例可以被延遲初始化,靜態(tài)類(lèi)一般在第一次加載是初始化;
    再次,單例類(lèi)可以被集成,他的方法可以被覆寫(xiě);
    最后,或許最重要的是,單例類(lèi)可以被用于多態(tài)而無(wú)需強(qiáng)迫用戶只假定唯一的實(shí)例。舉個(gè)例子,你可能在開(kāi)始時(shí)只寫(xiě)一個(gè)配置,但是以后你可能需要支持超過(guò)一個(gè)配置集,或者可能需要允許用戶從外部從外部文件中加載一個(gè)配置對(duì)象,或者編寫(xiě)自己的。你的代碼不需要關(guān)注全局的狀態(tài),因此你的代碼會(huì)更加靈活。

    觀點(diǎn)二:(靜態(tài)方法

    靜態(tài)方法中產(chǎn)生的對(duì)象,會(huì)隨著靜態(tài)方法執(zhí)行完畢而釋放掉,而且執(zhí)行類(lèi)中的靜態(tài)方法時(shí),不會(huì)實(shí)例化靜態(tài)方法所在的類(lèi)。如果是用singleton,   產(chǎn)生的那一個(gè)唯一的實(shí)例,會(huì)一直在內(nèi)存中,不會(huì)被GC清除的(原因是靜態(tài)的屬性變量不會(huì)被GC清除),除非整個(gè)JVM退出了。這個(gè)問(wèn)題我之前也想幾天,并且自己寫(xiě)代碼來(lái)做了個(gè)實(shí)驗(yàn)。

    觀點(diǎn)三:(Good!
    由于DAO的初始化,會(huì)比較占系統(tǒng)資源的,如果用靜態(tài)方法來(lái)取,會(huì)不斷地初始化和釋放,所以我個(gè)人認(rèn)為如果不存在比較復(fù)雜的事務(wù)管理,用singleton會(huì)比較好。個(gè)人意見(jiàn),歡迎各位高手指正。  

    拋磚引玉,請(qǐng)不吝賜教!

    --------------------

        WE準(zhǔn)高手
    posted on 2008-01-22 10:46 大衛(wèi) 閱讀(20167) 評(píng)論(11)  編輯  收藏 所屬分類(lèi): Java

    FeedBack:
    # re: 采用單例模式還是靜態(tài)方法? 2008-01-22 11:25 久城
    我的理解:
    先區(qū)分類(lèi)與對(duì)象的概念。
    類(lèi)就象是一個(gè)模板,一個(gè)對(duì)象就是這個(gè)模板的一個(gè)實(shí)例。

    1.單例模式與靜態(tài)方法:
    單例模式只是一種模式,強(qiáng)調(diào)某一個(gè)實(shí)例是唯一的。
    靜態(tài)方法是基于類(lèi)的方法,與對(duì)象沒(méi)有必然聯(lián)系。

    2.單例類(lèi)與靜態(tài)類(lèi)
    單例類(lèi)就是采用單例模式的類(lèi),單例類(lèi)強(qiáng)調(diào)用它構(gòu)建的實(shí)例是唯一的。(基于對(duì)象的唯一)
    靜態(tài)類(lèi)就是所有的屬性和方法都是靜態(tài)的類(lèi),強(qiáng)調(diào)該類(lèi)的所有屬性和成員都是基于類(lèi)的,而不是基于某一個(gè)對(duì)象的。(基于類(lèi)的唯一)  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2008-01-22 11:31 rocket
    為什么不用spring管理你的DAO??
    還好進(jìn)行TDD。呵呵  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法?[未登錄](méi) 2008-01-22 14:06 dennis
    搞不明白單例模式與靜態(tài)方法需要比較什么?什么是靜態(tài)類(lèi)?概念混淆,邏輯不清  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2008-01-22 16:03 大衛(wèi)
    @dennis
    其實(shí),這個(gè)題目不是我寫(xiě)的,只是心中有疑問(wèn),看到晚上有此討論,就粘貼上了。我的意思是想問(wèn),對(duì)于工具類(lèi),用一個(gè)實(shí)例實(shí)現(xiàn)和用靜態(tài)類(lèi)實(shí)現(xiàn)的優(yōu)劣。
    其實(shí)你也應(yīng)該知道我要說(shuō)的是什么問(wèn)題。請(qǐng)幫忙談?wù)勀愕睦斫獍伞Vx謝!  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2008-01-23 09:39 隔葉黃鶯
    其次,單例可以被延遲初始化,靜態(tài)類(lèi)一般在第一次加載是初始化;

    什么是靜態(tài)類(lèi),靜態(tài)類(lèi)的概念直接理解就是 static class,而這種寫(xiě)法大概只會(huì)出現(xiàn)在一個(gè)類(lèi)的內(nèi)部類(lèi)中;但是從樓主的討論指的應(yīng)該都是指的靜態(tài)方法。即使是說(shuō)的靜態(tài)類(lèi),也有延遲加載的特性,并不會(huì)在JVM一起來(lái)就加載,會(huì)待到它所屬類(lèi)加載時(shí)加載,所以延遲性沒(méi)有區(qū)別的。

    靜態(tài)方法中產(chǎn)生的對(duì)象,會(huì)隨著靜態(tài)方法執(zhí)行完畢而釋放掉,
    無(wú)論是實(shí)例方法還是類(lèi)的方法,方法中的對(duì)象都是局部對(duì)象,在方法返回后都會(huì)釋放。  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2008-01-27 07:56 小雨
    這個(gè)問(wèn)題我也思考了一段時(shí)間。

    我現(xiàn)在的想法是這樣的:如果一個(gè)類(lèi)不需要擴(kuò)展,就使用靜態(tài)方法類(lèi),當(dāng)然也可以使用單例,只是用單例的話寫(xiě)起來(lái)麻煩,使用哪個(gè),決定權(quán)在你手上。
    如果是個(gè)需要擴(kuò)展的類(lèi),那就最好使用單例了,因?yàn)橛渺o態(tài)方法類(lèi)的話,在代碼中都是這么使用的 SomeClass.doSomething(),當(dāng)這個(gè)SomeClass類(lèi)需要擴(kuò)展的時(shí)候,比如你用一個(gè)SubClass繼承了SomeClass,項(xiàng)目中的代碼都需要改成SubClass.doSomething()的話,需要改非常多的地方。如果一開(kāi)始使用的是單例類(lèi),你一開(kāi)始使用SomeClass的時(shí)候是這么寫(xiě)的:SomeClass sc = SomeClass.getInstance();,后面都調(diào)用sc.doSomething();,當(dāng)你需要替換成SubClass的時(shí)候只要改掉聲明部分:SomeClass sc = SubClass.getInstance();。

    DAO我認(rèn)為還是用單例比較好。至于你說(shuō)的占資源,其實(shí)單例類(lèi)和靜態(tài)方法類(lèi)是一樣的。你應(yīng)該先搞清楚一個(gè)類(lèi)無(wú)論有多少個(gè)實(shí)例,它所含有的方法代碼只會(huì)出現(xiàn)在內(nèi)存中一次而已。只要你的這個(gè)DAO沒(méi)有成員變量,無(wú)論你實(shí)例化多少次,占用的內(nèi)存是幾乎不變的。

    這里有一個(gè)CSDN上2004年的老帖子:
    http://topic.csdn.net/t/20040427/12/3012555.html  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法?[未登錄](méi) 2012-06-25 11:38 過(guò)客
    @dennis
    你懂什么,單例和靜態(tài)方法帶來(lái)的效果,都是一個(gè)類(lèi)一個(gè)實(shí)例。這是他們的相同點(diǎn)。不懂就不要噴別人。
    請(qǐng)對(duì)別人保持尊重  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2013-01-20 20:42 
    @小雨
    單例類(lèi)無(wú)法被擴(kuò)展  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2013-06-25 11:49 ShuXiaolong
    @久城
    說(shuō)真的,你的 理解 真的沒(méi)有 實(shí)戰(zhàn)意義。

    單例 還是 靜態(tài) 都可以實(shí)現(xiàn)相同的代碼 功能:
    在 內(nèi)存開(kāi)銷(xiāo),CPU速度,線程安全 上 基本持平。

    其實(shí),很多時(shí)候 選擇用 單例 和 靜態(tài) 完全取決于 程序?yàn)?維護(hù)成本。

    單例 最大的優(yōu)勢(shì) 是 可以進(jìn)行繼承,多態(tài)。
    靜態(tài)類(lèi) 可能 看起來(lái) 清爽一點(diǎn)。

    ————————————
    對(duì)于 “強(qiáng)調(diào)某一個(gè)實(shí)例是唯一的” “與對(duì)象沒(méi)有必然聯(lián)系”
    ——這種理解 真沒(méi)有 理論 與 實(shí)戰(zhàn) 的價(jià)值。

    【設(shè)計(jì)模式 不能僅停留在 代碼怎么寫(xiě)
    —— 而要理解 設(shè)計(jì)模式可以做到什么:減少代碼,增加穩(wěn)定,方便理解,提升性能,減少開(kāi)銷(xiāo)】

      回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2015-06-16 13:53 老學(xué)生
    @久城
    沒(méi)實(shí)際經(jīng)驗(yàn)不要上來(lái)誤導(dǎo)別人,背會(huì)概念不代表你能解決實(shí)際問(wèn)題.
    你在實(shí)際工程中都使用過(guò)嗎?比如一個(gè)常用工具類(lèi),是簡(jiǎn)單靜態(tài)方法的集合呢還是做個(gè)唯一實(shí)例?哪種用起來(lái)效率高?在現(xiàn)今機(jī)器條件下占用內(nèi)存可不考慮,但要考慮內(nèi)存垃圾對(duì)GC的影響,除非緩存數(shù)十萬(wàn)條數(shù)據(jù)  回復(fù)  更多評(píng)論
      
    # re: 采用單例模式還是靜態(tài)方法? 2015-06-16 13:54 老學(xué)生
    @rocket
    spring一般用的就是單例模式去加載。不一定是最好,只是為了方便那些不善于管理類(lèi)加載的人進(jìn)行大規(guī)模協(xié)作  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲成a人片在线观看无码专区| 美女视频黄视大全视频免费的| 亚洲国产激情一区二区三区| 日本在线高清免费爱做网站| 国产亚洲精品免费视频播放| 青娱乐在线免费观看视频| 亚洲国产午夜精品理论片在线播放 | 久久国产免费福利永久| 91免费福利视频| 美女露隐私全部免费直播| 亚洲人成色在线观看| 亚洲第一成年人网站| 亚洲天堂男人天堂| 久久精品亚洲中文字幕无码网站| 亚洲综合久久夜AV | 免费va在线观看| 四虎免费影院4hu永久免费| 免费无码一区二区三区蜜桃大 | 亚洲精品乱码久久久久久下载| 久久亚洲精品中文字幕无码| 亚洲综合伊人久久大杳蕉| 国产亚洲av人片在线观看| 亚洲精品综合久久| 2022中文字字幕久亚洲| 亚洲国产成人久久综合区| 亚洲国产精品激情在线观看| 又爽又黄无遮挡高清免费视频| 国产精品va无码免费麻豆| 无码国模国产在线观看免费 | 一级做a爰片性色毛片免费网站 | 成人毛片免费观看视频在线| 97人伦色伦成人免费视频| 毛片a级毛片免费观看品善网| 成年男女男精品免费视频网站| 成人免费无毒在线观看网站| 日本成人免费在线| 亚洲国产精品视频| 亚洲人成色7777在线观看| 久久久久亚洲Av无码专| 亚洲国产精品久久久久秋霞影院| 亚洲人成影院77777|