0
每當我看到工廠設計模式,它總是有一個簡單的new FactoryName.build()
方法。當創建對象時,它們具有依賴性,但在我的情況下,我有一個現有的項目,我在運行時比在初始化時運行更多(考慮在現有的複雜代碼庫中,而不是簡單的工廠設計示例)。因此,爲了注入所需的依賴關係,我的build
的實現不可能僅實現爲return new Blah(new This(), new That())
。工廠設計模式禁止?
所以如果我想傳遞的參數來構建(如:build(SomeENUM type)
,和/或甚至自動檢測內部構建依賴關係(如:some logic to auto-detect SomeENUM type
)是一方或雙方的固有錯誤的
好了,來電者一個工廠應該聲明預先考慮它想要的實現類型。比喻說,它應該從餐廳菜單中下訂單,而不要問服務員什麼是好吃的? – Zombies 2013-03-22 07:44:07
的權利,但如果你使用抽象工廠模式,你可以決定去哪家餐館(改變菜單)。見上面的例子。順便說一句,Build Factory是基於你傳遞給工廠啓動的參數。而在門的另一邊,你會得到產品。 – 2013-03-22 07:54:08