【发布时间】:2011-04-16 15:09:52
【问题描述】:
Factory 后缀代表什么?
【问题讨论】:
Factory 后缀代表什么?
【问题讨论】:
工厂对象的唯一目的是创建(实例化)其他对象。 NHibernate 使用 SessionFactory 来管理 ISessions 的创建。
通过同样的措施 - ProxyFactoryFactory 创建一个可以生产代理的工厂。它解决的更大问题是它允许在代码中保持一定程度的抽象,以便两个不同的模块无需了解彼此的实现细节(即具体实例)即可协同工作。
如果我们在想要打开会话时必须创建一个新的 NHibernate SessionImpl,我们需要能够在本地范围内提供它的所有依赖项。下面是 NHibernate 中 SessionFactoryImpl 中实际创建会话的代码:
SessionImpl session = new SessionImpl(connection, this, autoClose, timestamp, sessionLocalInterceptor ?? interceptor,
settings.DefaultEntityMode, settings.IsFlushBeforeCompletionEnabled,
settings.IsAutoCloseSessionEnabled, settings.ConnectionReleaseMode);
我宁愿只使用
sessionFactory.OpenSession();
不必管理所有这些依赖项;)
【讨论】:
因为它的唯一职责是创建一个 Session:一个生产 Sessions 的工厂。
【讨论】:
factory 是一种设计模式。它是一个创建对象的类。会话工厂创建会话。
【讨论】: