在Web应用程序中使用“商店”

时间:2010-01-19 13:53:34

标签: asp.net-mvc datastore

我在我正在处理的网络应用中看到大量使用“商店”对象。这个模式是否有名称,你会说这些类型是BLL还是DAL?

这些商店包含我认为是经典DAL类型的片段,与单一类型相关联。

例如,我们有一个TabStore,包含Tabs的持久性和检索方法。在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 个答案:

答案 0 :(得分:2)

可能更常见的是Repository

抽象存储库属于域模型,但应由具体类在单独的数据访问组件中实现。

答案 1 :(得分:1)

如果我正确地理解了这个问题,那么“商店”与DAL的关系比与BLL的关系更为重要,因为它们应该没有什么逻辑 - 毕竟他们的角色只是“存储”。

答案 2 :(得分:1)

更多细节肯定会有所帮助,包括使用“商店”的代码片段......

但是根据您的问题,听起来像开发人员使用术语“商店”而不是“存储库”,这意味着Repository Pattern(与您的相关)数据访问层。)

更新后......显然,开发人员最初称之为“商店”的是“存储库”。