1. 程式人生 > >effective Java 1 使用靜態工廠方法代替構造器

effective Java 1 使用靜態工廠方法代替構造器

jdk Boolean類的原始碼:

public final class Boolean implements java.io.Serializable,
        Comparable<Boolean> {

    public static final Boolean TRUE = new Boolean(true);
    public static final Boolean FALSE = new Boolean(false);

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

優勢:

1.靜態方法有名稱,可以自己設定有意義名稱,讓別人通過方法名就可以知道如何使用該方法

2.不用每次呼叫它都新建一個物件,浪費記憶體

    因為這個例項在類載入後就形成了,屬於類,不屬於物件

3.他們可以返回原返回型別的任何子型別的物件

4.建立引數化型別例項的時候,可以使程式碼變得更加簡潔