Использование “хранилищ” в веб-приложении

StackOverflow https://stackoverflow.com/questions/2093907

  •  21-09-2019
  •  | 
  •  

Вопрос

Я вижу интенсивное использование объектов "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;
}
Это было полезно?

Решение

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

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

Другие советы

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

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

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

После вашего update...it определенно похоже, что то, что разработчики изначально назвали "магазином", является "репозиторием".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top