posts - 241,  comments - 116,  trackbacks - 0
             創建類的實例最常見的是new 除此外還可以使用靜態工廠方法,來封裝實例的細節,并且能控制實例的數量,減輕jvm的堆棧中的壓力。

          靜態工廠方法與用new語句調用的構造方法相比,有以下區別:

          1:構造方法的名字必須與類名相同。這一特性的優點是符合Java語言的規范,缺點是類的所有重載的構造方法的名字都相同,不能從名字上區分每個 重載方法,容易引起混淆。靜態工廠方法的方法名可以是任意的,這一特性的優點是可以提高程序代碼的可讀性,在方法名中能體現與實例有關的信息。 人人

          eg:public class TottiStaticDemo{

                      private static final TottiStaticDemo demo = new TottiStaticDemo();

                      public static TottiStaticDemo getInstance(){

                             return demo;

                      }

                      public void outPutStatic(){

                            System.out.println("Test Static Factory Class!");

                      }

                 }

               如果需要在其他類中調用TottiStaticDemo類中的outPutStatic方法,那么只需要使用如下語句即可:

              TottiStaticDemo.getInstance().outPutStatic();而不必使用new關鍵字。

          2:每次執行new語句時,都會創建一個新的對象。而靜態工廠方法每次被調用的時候,是否會創建一個新的對象完全取決于方法的實現。 女裝品牌排行榜

          3:new語句只能創建當前類的實例,而靜態工廠方法可以返回當前類的子類的實例,這一特性可以在創建松耦合的系統接口時發揮作用。

          ***靜態工廠方法最主要的特點是:每次被調用的時候,不一定要創建一個新的對象。利用這一特點,靜態工廠方法可用來創建以下類的實例。

          <1> 單例類:只有惟一的實例的類。

          <2>枚舉類:實例的數量有限的類。

          <3>具有實例緩存的類:能把已經創建的實例暫且存放在緩存中的類。

          <4>具有實例緩存的不可變類:不可變類的實例一旦創建,其屬性值就不會被改變。
          posted on 2011-04-21 09:23 墻頭草 閱讀(7714) 評論(2)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          人人游戲網 軟件開發網 貨運專家
          主站蜘蛛池模板: 柳江县| 镇巴县| 宁武县| 洪雅县| 五莲县| 平果县| 尤溪县| 邛崃市| 滕州市| 青铜峡市| 东辽县| 革吉县| 扎赉特旗| 渭源县| 遂宁市| 玛沁县| 石楼县| 贺州市| 玉门市| 望奎县| 南昌县| 金阳县| 鹤庆县| 张家川| 塔城市| 盱眙县| 资阳市| 建昌县| 韶关市| 雅江县| 高淳县| 永昌县| 延庆县| 芦溪县| 万源市| 喜德县| 田阳县| 苍溪县| 涪陵区| 广元市| 应城市|