使用靜態工廠方法的好處和壞處

2021-06-29 04:02:59 字數 736 閱讀 4490

前言: 清晰性和簡介性是最為重要的

乙個模組的使用者永遠也不應該被模組的行為所迷惑(那樣就不清晰了),模組要盡可能的小,但又不能太小【術語模組(module):是指任何可重用的軟體元件,從單個方法到包含多個包的複雜系統都可以是乙個模組】。**應該被重用,而不是拷貝,模組之間的相依性應該盡可能降低到最小,錯誤應該盡早被檢測出來,理想的情況下是在編譯的時刻。

no.1 考慮用靜態工廠方法代替建構函式

靜態工廠方法好處:

①建構函式有命名的限制,而靜態方法有自己的名字,更加易於理解。

②靜態工廠方法在每次呼叫的時候不要求建立乙個新的物件。這種做法對於乙個要頻繁建立相同物件的程式來說,可以極大的提高效能。它使得乙個類可以保證是乙個singleton;他使非可變類可以保證「不會有兩個相等的例項存在」。

③靜態工廠方法在選擇返回型別時有更大的靈活性。使用靜態工廠方法,可以通過呼叫方法時使用不同的引數建立不同類的例項,還可以建立非公有類的物件,這就封裝了類的實現細節。

靜態工廠方法壞處:

①如果乙個類是通過靜態工廠方法來取得例項的,並且該類的建構函式都不是公有的或者保護的,那該類就不可能有子類(被繼承),子類的建構函式需要首先呼叫父類的建構函式,因為父類的建構函式是private的,所以即使我們假設繼承成功的話,那麼子類也根本沒有許可權去呼叫父類的私有建構函式,所以是無法被繼承的。

②畢竟通過建構函式建立例項還是sun公司所提倡的,靜態工廠方法跟其他的靜態方法區別不大,這樣建立的例項誰又知道這個靜態方法是建立

靜態工廠方法和例項工廠方法

在學習spring bean的例項化方式的時候遇到的乙個問題,spring bean例項化有3種方法 1 構造器生成 2 靜態工廠方法 3 例項工廠方法 那麼問題來了,什麼是靜態工廠方法,什麼是例項工廠方法?靜態工廠方法 顧名思義就是直接可以通過靜態方法來例項化乙個物件 如 public class...

使用靜態工廠方法和例項工廠方法建立Bean

靜態工廠 工廠初始化之前,工廠中的類已經被例項化放在工廠容器中 例項工廠 工廠再構造方法初始化時,會將類進行例項化放在工廠中 factory method 指向靜態方法的名字 constructor arg 如果工廠方法需要傳入引數,則使用constructor arg來配置引數 1 使用靜態工廠方...

靜態工廠方法

它只是乙個簡單的靜態方法,返回類的乙個例項.1.與建構函式不同,靜態工廠方法具有名字.選用適當名字的靜態工廠方法可以使乙個類更易於使用,並且相應的客戶 更易於閱讀.2.與建構函式不同,不要求非得建立乙個新的物件.這使得一些非可變類可以使用乙個預先構造好的例項,或者把已經構造好的例項緩衝起來.同時,靜...