1. 程式人生 > >Effective Java P2 Item1 Consider static factory methods instead of constructors

Effective Java P2 Item1 Consider static factory methods instead of constructors

靜態 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