【问题标题】:Where should I be creating the entity objects?我应该在哪里创建实体对象?
【发布时间】:2009-10-15 18:31:59
【问题描述】:

我有一个实体类和一个实体 DAO 类。

是否应该由 DAO 类负责创建实体类的实例,或者是否应该有一个实体创建者/管理器类只使用 DAO 类从数据库中获取数据来创建实体类。

谢谢,

克里斯

【问题讨论】:

    标签: oop entity entitymanager data-access-layer


    【解决方案1】:

    DAO 应该负责从数据存储中加载持久对象并返回瞬态实例。为什么要在此处添加另一层抽象?

    为了创建新实体,可能会涉及到工厂(或汇编器)。但是,通常这仅在实体创建足够复杂时才合理。在大多数情况下,一个简单的构造函数就可以满足要求。

    【讨论】:

      【解决方案2】:

      我通常让 DAO 知道实体组装并返回一个完全水合的实体。为什么?因为,通常 DAO 只是为了支持该实体而存在。如果它的角色不一定支持该实体或相关实体,那么您可能需要查看中间层。

      【讨论】:

        【解决方案3】:

        我假设您正在谈论一个持久性实体以及管理该持久性的东西。在我看来,使用工厂来简单地创建 POJO 没有任何价值。使用常规方法,然后使用DAOEntityManager 等等来处理持久性。我认为关键是不要让持久性策略/实现流血通过您的业务 API。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-01
          • 2013-07-05
          • 1970-01-01
          • 2014-05-27
          • 2012-08-24
          相关资源
          最近更新 更多