2011-03-16 162 views
2

我需要爲其決定使用工廠模式的同一類創建多個實例。我們需要爲工廠創建的實例提供查詢功能。工廠設計模式:工廠可以保存實例嗎?

因此,按照工廠模式的標準,工廠能否擁有它創建的對象?或者我需要創建另一個組件,這將允許查詢這些實例?

+0

如果我沒有完全錯誤,這聽起來更像是[原型](http://en.wikipedia.org/wiki/Prototype_pattern)。 – Filburt 2011-03-16 08:07:28

+0

再次,它不清楚決定一個模式,添加儘可能多的背景和目標,你想實現工廠模式。從外觀上看,你可能需要[Flyweight](http://www.dofactory.com/Patterns/PatternFlyweight.aspx)模式。只是一個猜測。 – 2011-03-16 08:10:12

+0

+ 1好問題 – Nilesh 2011-03-16 10:03:37

回答

6

肯定是COULD持有它創建的對象,但這意味着工廠有兩個責任。如果您創建了一個存儲庫類,該類負責保持對創建對象的引用,那將會更好。如果存儲庫尚未具有包含該ID的對象,則該存儲庫類還可以使用工廠創建新實例。

+0

+1好答案。 – Nilesh 2011-03-16 10:04:58

0

通常,對象的所有者應執行與釋放或釋放由其創建的對象分配的資源相關的任務。

在你的例子中,它是執行這些任務的工廠類(或任何你選擇的模式)。