《設(shè)計模式》一書對Singleton模式是這樣描述的:
          保證一個類只有一個實例,并提供一個訪問它的全局訪問點。
          這個模式比較簡單,下面給出一個例子:
          public class Singleton {
            private static Singleton instance;
            private Singleton(){
            
            }
            public static Singleton getInstance(){
             if(instance==null)
              instance=new Singleton();
             return instance;
            }
          }
          這個程序在單線程下運行不會有問題,但是它不能運行在多線程的環(huán)境下,若想讓運行在多線程的環(huán)境下,必須修改如下:
          public class Singleton {
            private static class Instance{
             static final Singleton instance=new Singleton();
            }
            private Singleton(){
            
            }
            public static Singleton getInstance(){
             return Instance.instance;
            }
          }
          這樣做之所以可以,是因為靜態(tài)的內(nèi)部類Instance只會被裝載一次。運行在多線程下的單態(tài)設(shè)計模式也叫Double-Checked Looking模式。

          Feedback

          # re: 設(shè)計模式學(xué)習(xí)筆記(九)—Singleton模式  回復(fù)  更多評論   

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

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

          Copyright © flustar

          主站蜘蛛池模板: 永平县| 河源市| 东平县| 唐山市| 桑植县| 新化县| 伊春市| 松滋市| 客服| 名山县| 丁青县| 海城市| 抚松县| 金堂县| 五家渠市| 武强县| 大厂| 榆中县| 冷水江市| 镇平县| 珠海市| 盐城市| 栖霞市| 嘉荫县| 治多县| 巴中市| 石城县| 大宁县| 昭通市| 邵阳市| 台前县| 双鸭山市| 连山| 桂阳县| 万全县| 布拖县| 贺兰县| 都昌县| 南澳县| 辽阳县| 义乌市|