6. 創建(Creation)
6.1 Replace Constructors with Creation Methods
當有很多Constructors時,把它改成很多個createXXX()
反正就是要把各個建構子換成Creation Method的樣式
當有很多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
沒有留言:
張貼留言