1. 程式人生 > >靜態工廠方法代替建構函式的優缺點

靜態工廠方法代替建構函式的優缺點

 

優點:

1.與建構函式不同,靜態工廠方法具有名字。這個好處可以幫助我們擺脫一個類只能有一個原型相同的建構函式的限制。

2.與建構函式不同,靜態工廠方法每次被呼叫的時候,不要求非得建立一個新的物件(signleton模式)。

3.與建構函式不同,他們可以返回一個原返回型別的子型別物件(服務提供者框架的基礎)。

缺點:
1. 類如果不含公有的或者受保護的建構函式,就不能被子類化。如果一個類沒有公有的或者受保護的建構函式,那麼這個類就不能被繼承。比如:
 

public class TestObject {

private TestObject(){

System.out.println("new a TestObject!");

}

}

public class SubObject extends TestObject{//編譯報錯,提示父類的建構函式是不可見的

}

2. 與其它靜態方法沒有任何區別。常用的靜態工廠方法:valueof,getInstance