優勢1:有特定的名稱
如果構造器的引數本身沒有確切地描述正被返回的物件,那麼具有適當名稱的靜態工廠方法會更容易使用。
biginteer.probableprime(int, random) 指明返回的biginteger可能為素數,比原始的建構函式表示的更清楚。
public class biginteger
優勢2:不必再每次呼叫時建立乙個新的物件
使不可變類使用預先構建好的例項,或者將構建好的例項快取,進行重複利用。
boolean.valueof(boolean) 方法從不建立物件。
interger.valueof(int) 若傳入的值在範圍內則會返回快取池中的物件。
public static boolean valueof(boolean b)
public class
}
effective java 建立和銷毀物件
b 1.考慮靜態方法替代建構函式 b 靜態工廠方法有3個好處 b a.b 靜態工廠方法具有名字使程式碼易讀,名字不必和類名一樣具有更高靈活性。b b.b 實現singleton模式。b c.b 能返回乙個原返回型別的子類,形成面向介面程式設計的好習慣。壞處 b a.b 不能被繼承。b b.b 不夠物...
物件的建立和銷毀
考慮用靜態工廠方法代替構造器 示例 public static boolean valueof boolean b 當構造引數很多的時候考慮使用建造者 模式 示例 原始 public class nutritionfacts builder pattern public class nutritio...
1 建立和銷毀物件
1.使用建構函式 2.使用返回物件的靜態函式 1.方法中的區域性變數 必須初始化才可以進行使用 2.類的屬性變數 可以不進行初始化 物件的reference初始化為null 基本型別變數會自動的初始化 3.變數的初始化順序 3.1首先初始化類的屬性 呼叫他們的建構函式 3.2呼叫自己的建構函式 例子...