Effective Java P2 Item1 Consider static factory methods instead of constructors
阿新 • • 發佈:2019-01-22
靜態 1.4 factory 註意 random 優點 模式 對象 閱讀
獲得一個類的實例的傳統方法是公共的構造方法,還可以提供一個公共的靜態工廠方法(一個返回值為該類實例的簡單靜態方法),
例如Boolean(boolean 的封裝類)
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
此方法將boolean的原始值轉變成Boolean對象的引用。
註意:這裏的靜態工廠方法與設計模式中的工廠方法不一樣。靜態工廠方法有優缺點。
優點:①與構造方法相比,靜態工廠方法有名稱。構造方法的參數本身沒有描述被返回的對象,這時,靜態工廠可以有一個很好的名字,使得使用者很好的閱讀和使用。例如構造方法Constructor BigInteger(int, int, Random),返回一個可能是素數的大數,使用工廠方法BigInteger.probalePrime()可以更好的描述,這個方法在java1.4被加入到BigInteger類中。
②與構造方法比,靜態工廠方法不需要在每次被調用的時候創建新的對象。
Effective Java P2 Item1 Consider static factory methods instead of constructors