<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Coundy

       漫步風中,傾聽自己的腳步,在自我沉浸中,找尋逝去的靈魂

    posts - 27,comments - 2,trackbacks - 0

    一、對象的創建
           第1條:考慮用靜態工廠方法代替構造函數
                  概念:所謂靜態工廠方法(static factory method),實際上只是一個簡單的靜態方法,它返回的是類
                             的一  個實例。
                  例子:pbulic static Boolean getBoolean()
                              {
                                   return (Boolean.TRUE);
                              }
                    優點:1、與構造函數相比,靜態工廠方法可以具有一個具有意義的名字
                                 2、與構造函數相比,每一次調用并不一定非要創建一個新的對象
                                       例子:
                                               class SingletonFactory
                                                {   // 可以看作全局唯一的變量
                                                      private static singletonfactory=new SingletonFactory();

                                                      private SingletonFactory()
                                                      {}

                                                      public static SingletonFactory getSingletonFactoryInstance()
                                                      {    
                                                          //這里并不是每次都返回一個新的對象,而是反復返回同一個對象
                                                            return singletonfactory;
                                                        }
                                                 }
                                   3、與構造函數不同,可以返回一個原返回類型的子類型的對象
                                           例子:
                                                   Interface BaseInterface
                                                    {
                                                            void printlns();
                                                    }
                                                    class BaseImp implements BaseInterface
                                                    {
                                                             public BaseImp ()
                                                             {}
                                                             public void printlns()
                                                              {
                                                                      System.out.println("BaseImp's printlns method ");
                                                               }
                                                    }

                                                    abstract class SingletionFactory
                                                    {
                                                          private static SingletionFactory singletionfactory;
                                                         private static String classname="";
                                                          private static Object object=new Object();

                                                          public static BaseInterface getBaseInterface()
                                                          {
                                                                   if (singletionfactory==null)
                                                                    {
                                                                         synchorinzed(obj){
                                                                              try
                                                                              {
                                                                                       singletionfactory=(SingletionFactory)Class.forNmae(
                                                                                       classname).newInstaance();
                                                                              }
                                                                              catch(ClassNotFoundException e)
                                                                              {
                                                                                
                                                                               }
                                                                         }
                                                                     }
                                                                    return singletionfactory.createObject();
                                                           }
                                                            abstract BaseInterface createObject();
                                                    }

                          缺點:
                              1、如果類沒有public or protected 構造函數,不能子類化
                              2、與其他靜態方法沒有任何區別,靜態工廠方法代表了一種對規范的背離
    posted on 2007-04-12 04:14 Coundy 閱讀(1521) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲AV无码乱码在线观看牲色| 性做久久久久久免费观看| 国产免费爽爽视频免费可以看| 亚洲av永久无码精品三区在线4 | 亚洲精品国产电影| 午夜在线亚洲男人午在线| 国产一区二区免费在线| 亚洲AV无码AV吞精久久| gogo全球高清大胆亚洲| 免费无码国产V片在线观看| 免费夜色污私人影院在线观看| 精品在线视频免费| 亚洲午夜av影院| 日韩免费高清播放器| 亚洲天堂久久精品| 亚洲一区二区三区免费观看| 亚洲1234区乱码| 国产免费啪嗒啪嗒视频看看| 一二三四在线观看免费中文在线观看| 最新亚洲成av人免费看| 免费萌白酱国产一区二区三区| 亚洲国产综合精品中文第一区| 国产又大又粗又长免费视频| 亚洲欧美日韩一区二区三区在线 | 免费一级肉体全黄毛片| EEUSS影院WWW在线观看免费| 亚洲AV日韩精品久久久久久久| 国产国产人免费视频成69堂| 亚洲高清毛片一区二区| 亚洲中文字幕日产乱码高清app| 久久精品一区二区免费看| 亚洲天堂2017无码中文| 亚洲精品A在线观看| 222www免费视频| 国内成人精品亚洲日本语音| 亚洲精品乱码久久久久久按摩 | 无码免费一区二区三区免费播放| 亚洲另类精品xxxx人妖| 亚洲AV无码不卡在线观看下载 | 在线精品亚洲一区二区| 久久99亚洲综合精品首页|