2013年12月19日 星期四

重構-向範式前進 Refacttoring to Patterns(2)-創建Replace Constructors with Creation Methods

6. 創建(Creation)
   6.1 Replace Constructors with Creation Methods

      當有很多Constructors時,把它改成很多個createXXX()
      反正就是要把各個建構子換成Creation Method的樣式

      


         +.比建構式更能有效表達可獲得哪一種的實體物件
         +.突破建構式的限制,像是不能同時擁有兩個 引數個數和引數型別均相同的 建構式
         +.更容易找出未使用的創見瑪(creation code)
         -. Creation方式變得不標準,有些classes 使用new來instantiated ,有些使用Creation Method

         1.找出一個 為創建某種性質的實體而呼叫class的建構式(假設為Ctor1),對其Extract Method, 建立 public static函式
            此新函式為Creation Method,再實施Move Method將Creation Method移到內含建構式Ctor1的那個class
         2.找出Ctor1的所有呼叫者 將其改為呼叫Creation Method
         3.如果Ctor1呼叫了Ctor2 就讓Creation Method呼叫Ctor2 , 可透過Inline Method進行
         4.任何想轉換回Creation Method的建構式 重複步驟1~3
         5.如果這些class建構式沒有class之外的呼叫者,設為nonpublic
   

沒有留言:

張貼留言