<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不卡一区二区三区| 亚洲一区二区免费视频| 67pao强力打造国产免费| 亚洲AV永久无码精品成人| 韩国免费a级作爱片无码| 久久亚洲国产中v天仙www| 99久久免费国产特黄| 亚洲精品无码久久久久去q| 你懂的网址免费国产| 亚洲AV无码1区2区久久| 最近2019年免费中文字幕高清| 亚洲酒色1314狠狠做| 国产成人免费高清激情明星 | 青春禁区视频在线观看直播免费| 亚洲欧洲日产韩国在线| 亚洲精品国产高清不卡在线| 日亚毛片免费乱码不卡一区| 亚洲欧洲日产国码一级毛片| 99麻豆久久久国产精品免费| 久久久久亚洲精品天堂| 毛片免费在线观看网站| 黄色三级三级免费看| 亚洲精品制服丝袜四区| 免费黄色福利视频| 亚洲精品无码专区在线| 亚洲熟伦熟女新五十路熟妇| 99re免费在线视频| 亚洲第一成年网站视频| 91网站免费观看| 亚洲国产成人综合精品| 亚洲日韩国产成网在线观看| 日本免费中文视频| 亚洲国产欧洲综合997久久| 亚洲综合在线另类色区奇米| xxxxx免费视频| 人妻仑乱A级毛片免费看| 亚洲国产精品不卡在线电影| 真实乱视频国产免费观看| 成人自慰女黄网站免费大全| 亚洲AV综合色区无码二区爱AV|