【发布时间】:2011-03-30 08:24:35
【问题描述】:
在设计程序的数据访问层 (DAL) 时,我不确定如何命名数据存储类。
(通过数据存储类,我的意思是负责将持久化对象读入内存或持久化内存中对象的类。)
根据两点来命名数据存储类似乎是合理的:
- 它处理什么样的对象;
- 是否加载和/或保留此类对象。
⇒ 加载Banana 对象的类可能被称为例如BananaSource.
我不知道如何处理第二点(即示例中的Source 位)。我已经看到显然用于此目的的不同名词:
- repository:这听起来很笼统。这是否表示可以读/写访问?
- store:这听起来像是允许写访问的东西。
-
上下文:听起来很抽象。我已经在 LINQ 和对象关系映射器 (ORM) 中看到了这一点。
P.S. (几个月后):这可能适用于包含“活动”或其他受监督对象的容器(想到工作单元模式)。 - retriever:听起来像是只读的。
- source & sink:可能不适合对象持久化;更适合数据流?
- reader / writer:意图很明确,但对我来说听起来太技术性了。
这些名称是任意的,还是每个名称背后都存在广泛接受的含义/语义差异?更具体地说,我想知道:
- 什么名称适合只读数据存储?
- 什么名称适合只写数据存储?
- 什么名称适合偶尔更新的只读数据存储?
- 什么名称适合偶尔读取的大多数只写数据存储?
- 一个名称是否同样适用于所有场景?
【问题讨论】:
-
好问题,我在当前项目中一直在考虑这个问题。我想出使用
Store进行读/写,Service用于只读(例如UserService.GetUserById(1))。我唯一不喜欢的是,为了记住某物的名称,我必须知道/记住它的行为。我以这种方式使用 2 个不同的名词并不完全正确。有兴趣知道是否有标准(ish)约定。
标签: naming-conventions persistence terminology datasource data-access-layer