代码之家  ›  专栏  ›  技术社区  ›  Tom Pažourek

活动记录和存储库模式之间有什么区别?

  •  5
  • Tom Pažourek  · 技术社区  · 14 年前

    在我看来,唯一的区别是activerecord在数据容器类中有CRUD方法,而Repository模式对数据容器和CRUD方法使用单独的类,但我肯定错了。

    活动记录和存储库模式之间有什么区别?我应该什么时候使用哪种模式?

    2 回复  |  直到 12 年前
        1
  •  5
  •   DanP    14 年前

    基本上,你的假设是正确的。存储库和DAO模式将持久性问题外部化,而活动记录将持久性问题内部化。实际上,我见过一些实现,其中活动记录类被注入了一个存储库实例,该实例在内部提供了它们的持久性问题。

    反对使用activerecord模式的最大原因很简单,您的域对象不应该关心它们是如何(甚至是否)持久化的。存储库模式通过外部化持久性关注点并将其作为外部服务提供,从而为域对象提供持久性。

        2
  •  2
  •   Jason Miesionczek    14 年前