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

2021-04-22 21:41:26 字數 421 閱讀 6959

優點:

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

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

signleton

模式)。 3.

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

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

public class testobject

}public class subobject extends testobject

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

valueof,getinstance

靜態工廠方法代替構造器

靜態工廠方法的優勢 1它們有名稱,表意更清楚。2不必在每次呼叫它們的時候都建立乙個新物件 3它們可以返回原返回型別的任何子型別的物件。4在建立引數化型別例項的時候,它們是 變得更加簡單。缺點 1類如果不含有公有的或者受保護的構造器,就不能被子類化 2它們與其他的靜態方法實際上沒有任何區別,不方便辨認...

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

雖然他們類似,但是工廠模式需要建立乙個工廠物件,然後呼叫方法來建立例項,而靜態工廠方法可以寫在類中直接替代構造器,並可以通過類名直接呼叫,無需重新建立物件。構造器需要建立物件 靜態工廠方法有名字 對於構造器來說,根據入參的不同可以有多個構造器,但是這些構造器的名稱都是一樣的,使用者在呼叫時就會一頭霧...

1 考慮用靜態工廠方法代替構造器

1.考慮用靜態工廠方法代替構造器 例子 public static boolean valueof boolean b 使用靜態工廠替代構造器的優勢 1 他們有名稱 2 不必每次呼叫都產生新的物件 3 可以返回原返回型別任何子型別的物件 4 建立引數化型別例項的時候,使 更簡潔 缺點 1 類如果不含...