我的開源學習之路

          web

           

          重構與模式 解讀--------用Creation Method替換構造函數

          ???? 類中有多個構造函數,因此很難決定在開發期間調用那一個的時候,請采用Creation Method(個人翻譯為靜態構建模式)方式
          ??
          優點:
          ???? 1:比構造函數能夠更好的表達創建的實例的總類
          ???? 2:避免了構造函數的局限,比如兩個構造函數的參數數目和類型不能相同
          ???? 3:更容易發現無用的創建代碼
          ????
          缺點:
          ???? 創建方式是非標準的,有些類需要使用new實例化,有些需要使用靜態構建模式.

          ?????????????????????? ?? ??? ??? ??? ? -------------------------以上是書中原話

          ??? 個人強烈推薦使用靜態構建模式,尤其是優點的第2條,很優雅的解決了我下面例子中的問題
          不可運行代碼:
          public class People {
          ??? private int age;
          ??? private int height;
          ??? public People(int age){
          ??? ??? this.age=age;
          ??? }
          ??? public People(int
          height){
          ??? ??? this.
          height=height;
          ??? }
          }
          使用構建模式后:
          public class People {
          ??? private int age;
          ??? private int height;??
          ??? public static? People createPeopleByAge(int age){
          ??? ??? this.age=age;
          ??? }
          ???
          public static? People createPeopleByHeight(int height){
          ??? ??? this.
          height=height;
          ??? }

          }

          對比一下兩個對象,第二個對象的代碼變得優雅而又實用了.而且邏輯清晰

          其實還有幾個優點:
          ??????? 1:當使用new初始化一個類的時候,類中的每個構造函數都會被遍歷一遍,也就是構造函數越多,這個類實例化需要的時間越長.
          ??????? 2:我們現在很多人使用了編譯器,有個代碼提醒的功能.如果是靜態方法,可以得到提醒,而不同的構造函數,我們必須去查api了.
          ???????

          ????????????????????????????????????????????????????????????????

          posted on 2007-02-07 09:13 abba 閱讀(895) 評論(0)  編輯  收藏

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          SteelHand

          友情鏈接

          高手

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 贵南县| 西安市| 盐亭县| 青龙| 晋江市| 庆城县| 资兴市| 上蔡县| 天等县| 四川省| 任丘市| 杭州市| 徐州市| 平顺县| 环江| 永仁县| 西乡县| 西充县| 临邑县| 常宁市| 阳西县| 定陶县| 五寨县| 门源| 汉寿县| 柳林县| 澄江县| 商丘市| 固阳县| 石门县| 竹北市| 丹江口市| 延寿县| 遵义市| 新绛县| 浦东新区| 淄博市| 乐安县| 郴州市| 蓬溪县| 大渡口区|