設計模式學習筆記(九)—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

          主站蜘蛛池模板: 怀化市| 山阴县| 武胜县| 泸州市| 永嘉县| 乐都县| 南乐县| 海口市| 辽阳县| 宣化县| 额尔古纳市| 福建省| 武夷山市| 临江市| 宁波市| 体育| 连平县| 佳木斯市| 临潭县| 松滋市| 陵川县| 益阳市| 房产| 松溪县| 百色市| 迁安市| 通城县| 古浪县| 辽宁省| 万州区| 子洲县| 肃北| 新巴尔虎右旗| 中江县| 乌兰县| 白河县| 凤庆县| 博白县| 瑞金市| 永嘉县| 芷江|