0

我有一個依賴工廠類,像命名工廠一種類,其返回靜態對象

class DependencyFactory { 
    static Dependency dependency1 = getDependency1FromSomewhere(); 

    static Dependency dependency2 = getDependency2FromSomewhere(); 

    public static Dependency getDependency(int arg1) { 
     if (arg1 == 1) return dependency1; 
     return dependency2; 
    } 
} 

現在我的困惑是在類DependencyFactory的名稱。我認爲這不完全是一個工廠,而是一個根據參數返回預定義依賴關係的決策器類。那麼,名稱是否像DependencyFactory一樣可以,或者它應該是別的嗎?

謝謝。請評論任何其他信息。

+0

靜態工廠方法如何訪問實例變量?此代碼不能編譯。 – jaco0646

+0

@ jaco0646這不是重點,但我已糾正,讓你感覺更好:) –

+0

我感覺更糟糕:靜態字段不能自動裝配。 :( – jaco0646

回答

0

GoF book

嚴格定義如下定義的界面,用於創建一個對象,但讓子類決定哪一個類實例 。工廠方法讓類將實例化推遲到子類。

一個不得不說:沒有 - 你的類不是工廠,因爲這種模式爲您提供了一種方式,來實例化類。

也許你在尋找的是一個strategy pattern

從我的設計模式的經驗往往是無法肯定的告訴這是去一個適當的方式,不知道你的系統的背景。