創(chuàng)建模式-singleon單例模式

          一:使用場景

              1)經(jīng)常使用的地方:一個類只有一個實例,eg:頁面訪問統(tǒng)計pv,統(tǒng)計的個數(shù)就只能保證一個實例的統(tǒng)計。

              2)我們目前使用的情況:比如我想創(chuàng)建一個對象,這個對象希望只有一份實例的維護(hù),在內(nèi)存的保存也只有一份,也就是在同一個jvm的java堆里只保存一份實例對象,所以你會想一辦法,在創(chuàng)建這個對象的時候,就已經(jīng)能保證只有一份。

              3)怎么改進(jìn):定義該對象的時候,就保證是同一份實例,比如:定義為私有構(gòu)造函數(shù),防止通過new的方式可以創(chuàng)建對象,然后在對象里定義一個靜態(tài)的私有成員(本身對象的一個實例),然后再創(chuàng)建一個外面訪問該對象的方法就好了。

              4)改進(jìn)的好處:代碼在編譯代碼這個級別就被控制了,不至于在jvm里運行的時候才來保證,把唯一實例的創(chuàng)建保證在編譯階段;jvm里內(nèi)存只有一份,從而內(nèi)存占有率更低,以及更方便java垃圾回收

              5)改進(jìn)后的壞處:只能是代碼稍微需要更多點,其實大家最后發(fā)現(xiàn)改進(jìn)后的壞處,都是代碼定義比之間要多一點,但以后的維護(hù)代碼就降下來了,也短暫的代碼量偏大來換取以后代碼的精簡。

          二:一個實際的例子

          總體的例子

          package com.mike.pattern.singleton;

          /**
          * 總統(tǒng)

          * @author taoyu

          * @since 2010-6-22
          */
          public class President {
          private President(){
             System.out.println("總統(tǒng)已經(jīng)選舉出來了");
          }

          /**總統(tǒng)只有一個*/
          private static President president=new President();

          /**
          * 返回總統(tǒng)
          */
          public static President getPresident(){
             return president;
          }

          /**
          * 總統(tǒng)宣布選舉成功
          */
          public void announce(){
             System.out.println("偉大的中國人民,我將成你們新的總統(tǒng)");
          }
          }

          /**
          * @param args
          */
          public static void main(String[] args) {
             President president=President.getPresident();
             president.announce();
          }

          posted on 2012-08-06 17:33 陳睿 閱讀(475) 評論(0)  編輯  收藏 所屬分類: 設(shè)計模式

          導(dǎo)航

          <2012年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 常熟市| 西青区| 东乡县| 寻甸| 教育| 镇雄县| 增城市| 天峻县| 安国市| 芦溪县| 南和县| 浮山县| 武强县| 济源市| 眉山市| 长宁县| 西平县| 宜宾市| 龙岩市| 关岭| 铜川市| 云梦县| 平潭县| 天镇县| 绥江县| 浦城县| 尼勒克县| 巴青县| 邵阳县| 建湖县| 太白县| 湖州市| 广平县| 绍兴县| 邵武市| 合川市| 伊通| 洛南县| 育儿| 佛坪县| 延川县|