【问题标题】:Factory Design pattern : Can factory hold the instances?工厂设计模式:工厂可以持有实例吗?
【发布时间】:2011-03-16 18:27:14
【问题描述】:

我需要创建已决定使用工厂模式的同一类的多个实例。我们需要提供对工厂创建的实例的查询能力。

那么按照工厂模式的标准,工厂可以持有它创建的对象吗?或者我需要创建另一个允许查询这些实例的组件?

【问题讨论】:

  • 如果我没记错的话,这听起来更像是prototype pattern
  • 再次不清楚如何确定模式,添加尽可能多的上下文和您希望使用工厂模式实现的目标。从外观上看,您可能需要Flyweight 模式。只是猜测。

标签: design-patterns factory-pattern


【解决方案1】:

它当然可以持有它创建的对象,但这意味着工厂有两个职责。如果您创建了一个 repository 类来负责保存对所创建对象的引用,那就更好了。如果存储库类还没有具有该 ID 的对象,它也可以使用工厂创建新实例。

【讨论】:

    【解决方案2】:

    一般来说,对象的所有者应该执行与释放或释放由它创建的对象分配的资源相关的任务。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      相关资源
      最近更新 更多