隨筆-19  評(píng)論-2  文章-1  trackbacks-0

           復(fù)習(xí)

           

          其中登記式注冊(cè)單例模式:

          import java.util.*;

          class Single{

                 private static HashMap hashmap = new HashMap();

                 private int number = 0;

                 static{

                        Single single = new Single();

                        hashmap.put(single.getClass().getName(),single);

                 }

                 private Single(){}

                 public static Single getInstance(String name){

                        if(name == null){

                               name = "Single";

                        }

                        if(hashmap.get(name) == null){

                               try{

                                      hashmap.put(name,Class.forName(name).newInstance());

                               }catch(Exception e){

                                      System.out.println(e.getMessage());

                               }

                        }

                        return (Single)hashmap.get(name);

                 }

                 public void fun(){

                        number++;

                        System.out.println("the is the single fun :" + number);

                 }

          }

           

          他的另外一個(gè)做法是同過(guò)繼承,通過(guò)父類來(lái)注冊(cè)子類的對(duì)象:

          代碼如:

          class SingleChild extends Single{

                 public SingleChild(){}

                 public static SingleChild getInstance(){

                        return (SingleChild)Single.getInstance("SingleChild");

                 }

                 public void fun(){

                        System.out.println("singlechild");

                 }

          }

          當(dāng)它要這樣做之后就破壞了父類,因?yàn)樽宇愐{(diào)用父類的構(gòu)造子函數(shù),所以父類的構(gòu)造子函數(shù)就不能夠?yàn)樗接械模@就破壞單例模式的優(yōu)點(diǎn)。

          posted on 2005-07-30 21:04 sky 閱讀(85) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 华安县| 黎城县| 类乌齐县| 嵊泗县| 龙山县| 莱芜市| 汽车| 平舆县| 柳林县| 陆川县| 榆林市| 呼伦贝尔市| 黔西县| 黑水县| 得荣县| 米泉市| 阿荣旗| 广宗县| 霸州市| 山西省| 平邑县| 阳城县| 嘉峪关市| 尼勒克县| 隆尧县| 广元市| 宝丰县| 云霄县| 姚安县| 平南县| 乌审旗| 连城县| 临洮县| 海丰县| 西藏| 霍山县| 井研县| 基隆市| 天台县| 郴州市| 盐亭县|