Effective Java - Item1
阿新 • • 發佈:2018-11-11
讓物件的建立與銷燬在掌控中。
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 = newSingleton(); Singleton instance1 = Singleton.getInstance(); Singleton instance2 = Singleton.getInstance(); //比較例項地址 System.out.println(instance1 == instance2); } }
3. 可以返回子類物件