魚躍于淵

          First know how, Second know why !
          posts - 0, comments - 1, trackbacks - 0, articles - 49

          單例模式(SingleTon)

          Posted on 2008-12-20 18:12 魚躍于淵 閱讀(258) 評論(0)  編輯  收藏 所屬分類: 設(shè)計模式
           1 package com.givetop.singleton;
           2 
           3 public class singleton {
           4 
           5 
           6  public static void main(String[] args) {
           7   Single.getSingleton().say();
           8  }
           9 
          10 }
          11 
          12 class Single{
          13  private static Single s = new Single();
          14  public static Single getSingleton(){
          15   return Single.s;
          16  }
          17  private Single(){
          18   
          19  }
          20  public void say(){
          21   System.out.println("我開始說話了!");
          22  }
          23 }
          24 

          //思想是: 所謂單例就是只有一個實例存在(把類的構(gòu)造方法設(shè)為私有的,防止在類的外面new類的實例), 這樣減少了內(nèi)存的占有量, 而且還減輕了垃圾回收機(jī)制的負(fù)擔(dān)!

          下面看幾個設(shè)計的不好的例子!

          一.直接在類的內(nèi)部設(shè)一個靜態(tài)的該類的類型!

           

           1 package com.givetop.singleton;
           2 
           3 public class singleton {
           4 
           5 
           6     public static void main(String[] args) {
           7         Single.s.say();
           8     }
           9 
          10 }
          11 
          12 class Single{
          13     static Single s = new Single();
          14     private Single(){
          15         
          16     }
          17     public void say(){
          18         System.out.println("我開始說話了!");
          19     }
          20 }

          該類雖然實現(xiàn)了只能new一個實例但 s 屬性是default的, 破壞了類的封裝, 算不上是好的類的設(shè)計!
          好的方法是應(yīng)該把該屬性設(shè)為私有的, 然后在類里面提供一個公有的方法返回這個實例


           


           


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 屏东县| 扶绥县| 崇义县| 晋州市| 池州市| 汉川市| 咸丰县| 永春县| 雷波县| 多伦县| 宾阳县| 金塔县| 祁阳县| 南充市| 石林| 黑河市| 林州市| 灌阳县| 内江市| 蓬溪县| 洪雅县| 福清市| 建昌县| 巴林左旗| 通许县| 栾川县| 体育| 康定县| 永丰县| 西乌珠穆沁旗| 若尔盖县| 信丰县| 丰原市| 元朗区| 宜州市| 铁岭市| 越西县| 隆德县| 葫芦岛市| 金沙县| 阳泉市|