1. 程式人生 > >Effective Java - Item1

Effective Java - Item1

讓物件的建立與銷燬在掌控中。

Item 1: 使用靜態工廠方法而非使用建構函式

public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}

優勢:

1. 方法名+引數名,相較於建構函式,能更好的描述返回物件;

BigInteger(int, int, Random)
BigInteger.probablePrime(int, int, Random)

2. 不會像建構函式那樣,每次呼叫不一定必須返回新物件;

  利用靜態工廠方法可以得到類的單例物件,也可以輔助得到無法直接使用建構函式例項化的類的例項。

public class Singleton {

    private static Singleton instance = new Singleton();

    private Singleton(){
        //在類外部無法用私有建構函式例項化
    }

    public static Singleton getInstance(){
        return instance;
    }

    public static void main(String[] args) {
        //在類內部可以通過私有建構函式例項化
        Singleton instance = new
Singleton(); Singleton instance1 = Singleton.getInstance(); Singleton instance2 = Singleton.getInstance(); //比較例項地址 System.out.println(instance1 == instance2); } }

3. 可以返回子類物件