【问题标题】:Persistence Object Naming Convention持久性对象命名约定
【发布时间】:2010-11-05 04:37:31
【问题描述】:

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

【问题讨论】:

    标签: c# naming-conventions poco


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      我使用以下约定:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 实体与持久性无关。他明确表示他有单独的对象来做持久化。
        • epitka 是对的;实体通常是要持久化的对象。
        【解决方案4】:

        如果持久化对象只是用于持久化,也许只是在名称中添加“persistor”,如 Person_persistor 等。

        【讨论】:

          【解决方案5】:

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

          PocoRepository
          

          【讨论】:

          • 我实际上是在使用 NHIbernate 和 Ninject 的存储库模式,所以在我的具体情况下,存储库可能是最好的答案。
          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

            我相信你在想Data Transfer Object

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2023-03-13
              • 1970-01-01
              • 2012-03-17
              • 2021-04-05
              • 1970-01-01
              • 1970-01-01
              • 2011-12-25
              • 2012-12-03
              相关资源
              最近更新 更多