Почему SessionFactory в NHibernate является фабрикой? - PullRequest
0 голосов
/ 24 сентября 2010

Что означает постфикс Factory?

Ответы [ 3 ]

4 голосов
/ 24 сентября 2010

Фабричный объект - это объект, единственной целью которого является создание (создание) других объектов.NHibernate использует SessionFactory для управления созданием ISessions.

По той же мере - ProxyFactoryFactory создает фабрику, которая может производить прокси.Большая проблема, которую он решает, заключается в том, что он позволяет поддерживать уровень абстракции в коде, так что двум отдельным модулям не нужно понимать детали реализации друг друга (т.е. конкретные экземпляры) для совместной работы.

Еслинам нужно было создать новый NHibernate SessionImpl, когда мы хотели открыть сессию, нам нужно было иметь возможность предоставлять все его зависимости в локальной области.Вот код из SessionFactoryImpl в NHibernate, который фактически создает сеанс:

        SessionImpl session = new SessionImpl(connection, this, autoClose, timestamp, sessionLocalInterceptor ?? interceptor,
                                              settings.DefaultEntityMode, settings.IsFlushBeforeCompletionEnabled,
                                              settings.IsAutoCloseSessionEnabled, settings.ConnectionReleaseMode);

Я бы предпочел просто использовать

sessionFactory.OpenSession();

, чем управлять всеми этими зависимостями;)

3 голосов
/ 24 сентября 2010

A фабрика - это шаблон проектирования .Это класс, который создает объекты.Фабрика сеансов создает сеансы.

3 голосов
/ 24 сентября 2010

Поскольку единоличной обязанностью является создание Session: фабрика, которая производит Sessions.

...