2011-03-16 121 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

通常,对象的所有者应执行与释放或释放由其创建的对象分配的资源相关的任务。

在你的例子中,它是执行这些任务的工厂类(或任何你选择的模式)。