1

我看到我正在开发的 Web 应用程序中大量使用“存储”对象。这种模式有名称吗?你会说这些类型在 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;
}
4

3 回答 3

2

它可能是更常见的Repository

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

于 2010-01-19T13:58:39.703 回答
1

如果我正确理解了这个问题,“商店”与 DAL 的关系比与 BLL 的关系更大,因为它们中应该没有什么逻辑——毕竟它们的作用只是“存储”。

于 2010-01-19T13:57:25.743 回答
1

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

但是根据您的问题,听起来开发人员使用了“存储”一词而不是“存储库”,这意味着存储库模式(与您的数据访问层相关)。

在您更新之后......开发人员最初所说的“商店”似乎绝对是一个“存储库”。

于 2010-01-19T13:58:18.627 回答