2

我有一些 POCO,并且有相应的持久性对象来执行 CRUD。持久性对象的好名字是什么?我见过人们对这些使用术语“服务对象”,但是当我想到服务时,我想到了 WCF。也许“持久对象”是最好的,但我想听听其他人的想法。

4

7 回答 7

3

我相信您正在考虑Data Transfer Object

于 2009-06-23T14:20:23.893 回答
2

数据传输对象或 DTO 是引用这些对象的常用方法。

参见 Martin Fowler 的定义:http ://martinfowler.com/eaaCatalog/dataTransferObject.html

于 2009-06-23T14:20:26.827 回答
2

一个常见的约定是在处理将对象持久化到数据存储时的存储库模式,因此您会期望看到以下形式的命名约定(给定相应的 Poco 类型):

PocoRepository
于 2009-06-23T14:20:32.910 回答
1

如果持久性对象仅用于持久化,则可能只是在名称中添加“持久性”,例如 Person_persistor 等。

于 2009-06-23T14:20:56.047 回答
0

我使用以下约定:

  • <YourName>:您要保留的域类。(例如User
  • <YourName(pluralized)>Repository:持久化/存储您的域类的类。(例如UsersRepository
  • Persitent<YourName> (可选):真正持久化/存储的类。(在保存之前,您的存储库应该获取您的域类并将其映射到此持久模型。)(可以位于PersistentModels文件夹中。)
于 2019-06-12T13:12:58.363 回答
0

我相信您正在寻找“数据访问对象”或 DAO 后缀。

假设您的代码中有客户的概念,并且数据库中有客户列,那么您最终可能会得到以下模型:

  • CustomerDAO - 直接映射到客户列的类。这是您的“持久性课程”。也许它有一些技术领域,例如数据库索引 id 或序列
  • 客户- 代表您的业务逻辑的类。也许这缺少一些与数据库相关的字段,但有一些额外的业务相关字段或方法。例如,当您存储生日时,它可能有一个 calculateAge() 方法。
  • CustomerDTO - 一个类,表示您的 API 向外界公开的内容。这意味着由于隐私原因,它可能不会暴露生日。但相反,它可能会公开其他字段,例如“优惠券”,因为调用者获取这些字段也可能很有用。正如上面提到的 Kevin Swiber 并链接到 Martin Fowler

通常您会看到这 3 个功能由同一个类执行,但这不是最佳实践。除非您正在构建一个非常简单的应用程序,否则将它们分开会更好。这是否值得付出努力并且不会过度设计/过度复杂化事情是您必须做出的设计决定。

来源: https ://en.wikipedia.org/wiki/Data_access_object

于 2021-10-20T13:06:35.310 回答
-1

我相信“实体”是一个常用的传统名称。

于 2009-06-23T14:20:57.497 回答