Использование «магазинов» в веб-приложении - PullRequest
1 голос
/ 19 января 2010

Я вижу интенсивное использование объектов "store" в веб-приложении, над которым я работаю.Есть ли название для этого шаблона, и вы бы сказали, что эти типы находятся в BLL или DAL?

Эти хранилища содержат фрагменты того, что я бы назвал классическим типом DAL, связанным с одним типом.

Например, у нас есть TabStore, содержащий методы для сохранения и извлечения вкладок.Внутри каждого метода в TabStore есть код для вызова соответствующего запроса NHibernate.

Каковы подводные камни (если таковые имеются) работы с этим шаблоном?Действительно ли это простая попытка разделить то, что когда-то было монолитным типом Dal, на более управляемые меньшие типы?

Пример метода:

public IList<Tab> GetAllTabInstancesForUserId(Guid userId)
{
    IList<Tab> tabInstances =
                UoW.Session.CreateQuery("from Tab t where t.UserId=:userId order by t.TabOrder")
                   .SetGuid("userId", userId)
                   .SetCacheable(true)
                   .List<Tab>();

    return tabInstances;
}

Ответы [ 3 ]

2 голосов
/ 19 января 2010

Это может быть то, что более широко известно как репозиторий .

Абстрактный репозиторий принадлежит доменной модели , но должен быть реализован конкретными классами в отдельном компоненте доступа к данным .

1 голос
/ 19 января 2010

Определенно были бы полезны некоторые подробности, включая фрагменты кода, где используется «store» ...

Но исходя из того, что у вас есть в вашем вопросе, похоже, что разработчики использовали термин «хранилище» вместо «Репозиторий», что подразумевает Шаблон репозитория (который к вашему уровню доступа к данным).

После вашего обновления ... определенно кажется, что то, что разработчики изначально называли «магазином», является «хранилищем».

1 голос
/ 19 января 2010

Если я правильно понимаю вопрос, «магазины» больше связаны с DAL, чем с BLL, поскольку в них должно быть мало логики - ведь их роль - просто «хранение».

...