設計模式學習筆記(九)—Singleton模式

          Posted on 2007-11-28 20:39 flustar 閱讀(708) 評論(1)  編輯  收藏 所屬分類: Design Patterns
           《設計模式》一書對Singleton模式是這樣描述的:
          保證一個類只有一個實例,并提供一個訪問它的全局訪問點。
          這個模式比較簡單,下面給出一個例子:
          public class Singleton {
            private static Singleton instance;
            private Singleton(){
            
            }
            public static Singleton getInstance(){
             if(instance==null)
              instance=new Singleton();
             return instance;
            }
          }
          這個程序在單線程下運行不會有問題,但是它不能運行在多線程的環境下,若想讓運行在多線程的環境下,必須修改如下:
          public class Singleton {
            private static class Instance{
             static final Singleton instance=new Singleton();
            }
            private Singleton(){
            
            }
            public static Singleton getInstance(){
             return Instance.instance;
            }
          }
          這樣做之所以可以,是因為靜態的內部類Instance只會被裝載一次。運行在多線程下的單態設計模式也叫Double-Checked Looking模式。

          Feedback

          # re: 設計模式學習筆記(九)—Singleton模式  回復  更多評論   

          2007-11-29 05:31 by 歡樂的豬
          不錯

          posts - 146, comments - 143, trackbacks - 0, articles - 0

          Copyright © flustar

          主站蜘蛛池模板: 小金县| 峨眉山市| 宜君县| 恩施市| 西乌珠穆沁旗| 宜宾县| 深圳市| 岐山县| 修文县| 儋州市| 泌阳县| 梅河口市| 清涧县| 澄迈县| 铁岭县| 日土县| 太仓市| 景泰县| 炉霍县| 东丽区| 婺源县| 买车| 莲花县| 甘孜县| 达日县| 长乐市| 县级市| 中卫市| 万荣县| 苏州市| 南陵县| 星子县| 江永县| 成安县| 和顺县| 营山县| 洞口县| 浦城县| 斗六市| 昭平县| 绩溪县|