一个相当简单的问题,但我想知道任何使用NHibernate和存储库模式的人都知道他们的具体实现。
所以说你有IEmployeeRepository
,你会说具体的存储库说:
NHibernateEmployeeRepository
- 非常罗嗦NHibEmployeeRepository
NHEmployeeRepository
- 连续三个首都...... NhEmployeeRepoitory
我知道在宏观方案中它没关系,但我很想知道是否有某种标准。
干杯。
答案 0 :(得分:3)
我们称之为NHibernate***Repository
,因为它可能是最具描述性的。如果你有一个好马的存储库怎么办?然后它将被称为NhNhRepository。这会令人困惑。
或者,如果您不喜欢wordiness,那么另一个选择是使用命名空间,并将您的NHibernate存储库实现放在它们自己的程序集中(无论如何您应该这样做)。
然后,您的存储库可以被调用,例如, EmployeeRepository
,例如,坐在CompanyName.ProductName.Data.NHibernateRepositories
命名空间中。
答案 1 :(得分:1)
我不知道是否存在NHibernate的模式,但是根据约定命名代码(Clean Coder)的所有内容,您需要放置重要的名称,避免使用首字母缩略词。所以NHibernateEmployeeRepository带来了更多的意义,并让代码清晰。
答案 2 :(得分:1)
我避免将NHibernate添加到我的存储库的命名中,因为有时存储库最终会在不使用NHibernate的情况下访问数据。如果您想混合一些仅使用ADO.NET的遗留代码,该怎么办?然后你的命名意味着你需要一个单独的类,但是你有两个单独的类都扮演IEmployeeRepository的角色。
使用“NHibernate”这个词开始每个存储库现在可能听起来很有趣,但有一天当你拥有数百个实体时,你会畏缩它们,所有实体都有自己的标签“NHibernate”存储库。
顺便说一句。如果您要开始一个新的绿地项目,您可能想要研究存储库模式的替代方案。最近几年它已经开始失宠了。