<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)

    隨筆分類

    隨筆檔案

    groovy

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    關于這個問題,下面是一些同仁的觀點:

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

    觀點二:(靜態方法

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

    觀點三:(Good!
    由于DAO的初始化,會比較占系統資源的,如果用靜態方法來取,會不斷地初始化和釋放,所以我個人認為如果不存在比較復雜的事務管理,用singleton會比較好。個人意見,歡迎各位高手指正。  

    拋磚引玉,請不吝賜教!

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

        WE準高手
    posted on 2008-01-22 10:46 大衛 閱讀(20167) 評論(11)  編輯  收藏 所屬分類: Java

    FeedBack:
    # re: 采用單例模式還是靜態方法? 2008-01-22 11:25 久城
    我的理解:
    先區分類與對象的概念。
    類就象是一個模板,一個對象就是這個模板的一個實例。

    1.單例模式與靜態方法:
    單例模式只是一種模式,強調某一個實例是唯一的。
    靜態方法是基于類的方法,與對象沒有必然聯系。

    2.單例類與靜態類
    單例類就是采用單例模式的類,單例類強調用它構建的實例是唯一的。(基于對象的唯一)
    靜態類就是所有的屬性和方法都是靜態的類,強調該類的所有屬性和成員都是基于類的,而不是基于某一個對象的。(基于類的唯一)  回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2008-01-22 11:31 rocket
    為什么不用spring管理你的DAO??
    還好進行TDD。呵呵  回復  更多評論
      
    # re: 采用單例模式還是靜態方法?[未登錄] 2008-01-22 14:06 dennis
    搞不明白單例模式與靜態方法需要比較什么?什么是靜態類?概念混淆,邏輯不清  回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2008-01-22 16:03 大衛
    @dennis
    其實,這個題目不是我寫的,只是心中有疑問,看到晚上有此討論,就粘貼上了。我的意思是想問,對于工具類,用一個實例實現和用靜態類實現的優劣。
    其實你也應該知道我要說的是什么問題。請幫忙談談你的理解吧。謝謝!  回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2008-01-23 09:39 隔葉黃鶯
    其次,單例可以被延遲初始化,靜態類一般在第一次加載是初始化;

    什么是靜態類,靜態類的概念直接理解就是 static class,而這種寫法大概只會出現在一個類的內部類中;但是從樓主的討論指的應該都是指的靜態方法。即使是說的靜態類,也有延遲加載的特性,并不會在JVM一起來就加載,會待到它所屬類加載時加載,所以延遲性沒有區別的。

    靜態方法中產生的對象,會隨著靜態方法執行完畢而釋放掉,
    無論是實例方法還是類的方法,方法中的對象都是局部對象,在方法返回后都會釋放。  回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2008-01-27 07:56 小雨
    這個問題我也思考了一段時間。

    我現在的想法是這樣的:如果一個類不需要擴展,就使用靜態方法類,當然也可以使用單例,只是用單例的話寫起來麻煩,使用哪個,決定權在你手上。
    如果是個需要擴展的類,那就最好使用單例了,因為用靜態方法類的話,在代碼中都是這么使用的 SomeClass.doSomething(),當這個SomeClass類需要擴展的時候,比如你用一個SubClass繼承了SomeClass,項目中的代碼都需要改成SubClass.doSomething()的話,需要改非常多的地方。如果一開始使用的是單例類,你一開始使用SomeClass的時候是這么寫的:SomeClass sc = SomeClass.getInstance();,后面都調用sc.doSomething();,當你需要替換成SubClass的時候只要改掉聲明部分:SomeClass sc = SubClass.getInstance();。

    DAO我認為還是用單例比較好。至于你說的占資源,其實單例類和靜態方法類是一樣的。你應該先搞清楚一個類無論有多少個實例,它所含有的方法代碼只會出現在內存中一次而已。只要你的這個DAO沒有成員變量,無論你實例化多少次,占用的內存是幾乎不變的。

    這里有一個CSDN上2004年的老帖子:
    http://topic.csdn.net/t/20040427/12/3012555.html  回復  更多評論
      
    # re: 采用單例模式還是靜態方法?[未登錄] 2012-06-25 11:38 過客
    @dennis
    你懂什么,單例和靜態方法帶來的效果,都是一個類一個實例。這是他們的相同點。不懂就不要噴別人。
    請對別人保持尊重  回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2013-01-20 20:42 
    @小雨
    單例類無法被擴展  回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2013-06-25 11:49 ShuXiaolong
    @久城
    說真的,你的 理解 真的沒有 實戰意義。

    單例 還是 靜態 都可以實現相同的代碼 功能:
    在 內存開銷,CPU速度,線程安全 上 基本持平。

    其實,很多時候 選擇用 單例 和 靜態 完全取決于 程序為 維護成本。

    單例 最大的優勢 是 可以進行繼承,多態。
    靜態類 可能 看起來 清爽一點。

    ————————————
    對于 “強調某一個實例是唯一的” “與對象沒有必然聯系”
    ——這種理解 真沒有 理論 與 實戰 的價值。

    【設計模式 不能僅停留在 代碼怎么寫
    —— 而要理解 設計模式可以做到什么:減少代碼,增加穩定,方便理解,提升性能,減少開銷】

      回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2015-06-16 13:53 老學生
    @久城
    沒實際經驗不要上來誤導別人,背會概念不代表你能解決實際問題.
    你在實際工程中都使用過嗎?比如一個常用工具類,是簡單靜態方法的集合呢還是做個唯一實例?哪種用起來效率高?在現今機器條件下占用內存可不考慮,但要考慮內存垃圾對GC的影響,除非緩存數十萬條數據  回復  更多評論
      
    # re: 采用單例模式還是靜態方法? 2015-06-16 13:54 老學生
    @rocket
    spring一般用的就是單例模式去加載。不一定是最好,只是為了方便那些不善于管理類加載的人進行大規模協作  回復  更多評論
      
    主站蜘蛛池模板: 亚洲欧洲精品成人久久奇米网 | 久久亚洲伊人中字综合精品| 综合偷自拍亚洲乱中文字幕| 成年美女黄网站18禁免费| 亚洲国产午夜电影在线入口| 精品无码免费专区毛片| 亚洲av成人一区二区三区| www.黄色免费网站| 亚洲一区二区三区成人网站| 高清国语自产拍免费视频国产 | 思思99re66在线精品免费观看| 亚洲人片在线观看天堂无码| 日韩免费视频播播| 免费人成网上在线观看| 亚洲中文字幕无码不卡电影| 永久免费av无码入口国语片| 久久精品国产亚洲AV麻豆网站| 国产桃色在线成免费视频| 亚洲AV无码国产一区二区三区 | 亚洲AV无码久久精品蜜桃| 69av免费观看| 亚洲偷自拍另类图片二区| 国产免费一区二区三区VR| 精品一区二区三区高清免费观看| 亚洲人成图片小说网站| 亚洲一级毛片免费在线观看| 亚洲人成自拍网站在线观看| 精品亚洲视频在线观看| 日本免费在线中文字幕| 亚洲真人无码永久在线观看| 在线观看亚洲天天一三视| 最近中文字幕mv免费高清在线| 亚洲色偷偷色噜噜狠狠99| 亚洲男女内射在线播放| 91视频免费网址| 看亚洲a级一级毛片| 亚洲妇熟XXXX妇色黄| 在线免费观看一区二区三区| 两个人看的www高清免费视频| 亚洲高清一区二区三区| 中文字幕人成人乱码亚洲电影|