<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
    主站蜘蛛池模板: 日本一道综合久久aⅴ免费| 日韩精品免费在线视频| 成人黄软件网18免费下载成人黄18免费视频| 亚洲精品成人网站在线观看| 一日本道a高清免费播放| 亚洲熟伦熟女新五十路熟妇| 国产精品成人69XXX免费视频| 免费一级特黄特色大片在线观看| 精品国产亚洲AV麻豆 | 99久久这里只精品国产免费| 亚洲一级免费视频| 无码人妻精品一二三区免费| 亚洲国产精品成人午夜在线观看 | 亚洲美女视频免费| 亚洲国产精品一区二区久| 亚洲高清免费在线观看| 久久国产免费观看精品| 国产亚洲欧美在线观看| 亚洲av无码兔费综合| 日韩免费无码一区二区三区 | 成人片黄网站A毛片免费| 亚洲午夜国产精品无卡| 全免费A级毛片免费看网站| 激情吃奶吻胸免费视频xxxx| 久久久久亚洲?V成人无码| 黄色片免费在线观看| 亚洲中文字幕在线无码一区二区| 在线jlzzjlzz免费播放| 国产成人精品免费大全| 亚洲尹人香蕉网在线视颅 | 亚洲中文字幕在线观看| 最近免费最新高清中文字幕韩国 | 亚洲国产综合AV在线观看| 区久久AAA片69亚洲| 亚洲第一网站免费视频| 偷自拍亚洲视频在线观看99| 亚洲av无码不卡一区二区三区| 日韩av无码成人无码免费| 国产免费人成视频在线播放播| 亚洲一卡2卡4卡5卡6卡在线99 | 九九九精品成人免费视频|