【发布时间】:2010-11-05 04:37:31
【问题描述】:
我有一些 POCO,并且有相应的持久性对象来执行 CRUD。持久性对象的好名字是什么?我见过人们对这些使用术语“服务对象”,但是当我想到服务时,我想到了 WCF。也许“持久性对象”是最好的,但我想听听其他人的想法。
【问题讨论】:
标签: c# naming-conventions poco
我有一些 POCO,并且有相应的持久性对象来执行 CRUD。持久性对象的好名字是什么?我见过人们对这些使用术语“服务对象”,但是当我想到服务时,我想到了 WCF。也许“持久性对象”是最好的,但我想听听其他人的想法。
【问题讨论】:
标签: c# naming-conventions poco
我相信您正在寻找“数据访问对象”或 DAO 后缀。
假设您的代码中有一个客户的概念,并且您的数据库中有一个客户列,那么您最终可能会得到以下模型:
您经常会看到这 3 个功能由同一个类执行,但这并不是最佳实践。除非您正在构建一个非常简单的应用程序,否则将它们分开会更好。这是否值得付出努力并且不会过度设计/过度复杂化事情是您必须做出的设计决定。
【讨论】:
我使用以下约定:
<YourName>:要持久化的领域类。 (例如User)<YourName(pluralized)>Repository: 持久化/存储你的领域类的类。 (例如UsersRepository)Persitent<YourName> (可选):真正持久化/存储的类。 (在保存之前,您的存储库应获取您的域类并将其映射到此持久模型。)(可以位于 PersistentModels 文件夹中。)【讨论】:
我相信“实体”是一个常用的传统名称。
【讨论】:
如果持久化对象只是用于持久化,也许只是在名称中添加“persistor”,如 Person_persistor 等。
【讨论】:
在处理将对象持久化到数据存储区时,一个常见约定是存储库模式,因此您希望看到以下形式的命名约定(给定相应的 Poco 类型):
PocoRepository
【讨论】:
数据传输对象或 DTO 是引用这些对象的常用方法。
参见 Martin Fowler 的定义:http://martinfowler.com/eaaCatalog/dataTransferObject.html
【讨论】:
我相信你在想Data Transfer Object。
【讨论】: