我需要创建同一个类的多个实例,并决定使用工厂模式。我们需要为工厂创建的实例提供查询功能。
因此,按照工厂模式的标准,工厂可以保留它创建的对象吗?或者我需要创建另一个允许查询这些实例的组件?
答案 0 :(得分:6)
肯定 COULD 持有它创造的对象,但这意味着工厂有两个责任。如果您创建了一个负责保持对创建对象的引用的存储库类会更好。如果存储库类还没有具有该ID的对象,则存储库类也可以使用工厂创建新实例。
答案 1 :(得分:0)
通常,对象的所有者应执行与释放或释放由其创建的对象分配的资源相关的任务。
在您的示例中,它是执行这些任务的工厂类(或您选择的任何模式)。