【问题标题】:Is HibernateSessionFactory an example of Factory PatternHibernateSessionFactory 是工厂模式的一个例子吗
【发布时间】:2015-09-14 08:09:19
【问题描述】:

如果不是,工厂模式和抽象工厂模式的标准实现是什么?

【问题讨论】:

  • SessionFactory 是一个实现工厂设计模式的单例实例
  • 由于术语(简单工厂 vs 工厂方法 vs 抽象工厂)存在很多混淆。一个很好的代码参考是codeproject.com/Articles/716413/…——工厂方法有一个多态方法,这意味着有一个子类将实现该方法并实例化正在创建的对象的实例。 Collection.iterator() 是工厂方法的一个很好的例子。见stackoverflow.com/questions/31017531/…

标签: java hibernate design-patterns


【解决方案1】:

当您想要创建实例时使用工厂设计模式,但是您每次都需要将大量信息传递给构造函数,因此使用构造函数变得不切实际。

Factory 实例包含许多将被创建的所有实例共有的状态,然后它能够​​使用这些信息构造新实例。

通常你会在工厂里有类似.create() 的方法,它也可能需要一些参数;传递给.create() 的参数中的信息和工厂保存的信息将一起用于构造工厂创建的任何类型的新实例。

要回答您的问题,是的,HibernateSessionFactory 使用工厂设计模式。

您可以查看ThreadFactory 的另一个示例。

This post 解释了工厂方法和抽象工厂模式之间的区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    相关资源
    最近更新 更多