魚躍于淵

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

          單例模式(SingleTon)

          Posted on 2008-12-20 18:12 魚躍于淵 閱讀(261) 評(píng)論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)模式
           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è)實(shí)例存在(把類的構(gòu)造方法設(shè)為私有的,防止在類的外面new類的實(shí)例), 這樣減少了內(nèi)存的占有量, 而且還減輕了垃圾回收機(jī)制的負(fù)擔(dān)!

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

          一.直接在類的內(nèi)部設(shè)一個(gè)靜態(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 }

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


           


           


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 小金县| 滨州市| 卢龙县| 香格里拉县| 天台县| 图片| 洪湖市| 古浪县| 仁寿县| 普陀区| 龙海市| 平顺县| 鹤峰县| 白银市| 麦盖提县| 鹿邑县| 黄梅县| 宿松县| 太和县| 克东县| 昌图县| 霸州市| 贵德县| 兴业县| 来宾市| 调兵山市| 清徐县| 博湖县| 奉节县| 西昌市| 青州市| 宣化县| 福鼎市| 甘泉县| 呼和浩特市| 渝北区| 宜宾县| 宜良县| 紫阳县| 马公市| 霸州市|