Active Record和DAO之间的区别?

时间:2011-07-10 11:25:02

标签: activerecord dao

数据访问对象和活动记录之间有什么区别?它们似乎完全相同,因为它们在应用程序和持久层之间构建了一个层,并使用SQL查询抽象出直接数据库访问。

2 个答案:

答案 0 :(得分:19)

数据访问对象(DAO)是指数据层中的一个对象,负责在您的域中持久保存单独的实体。 Active Record是混合的,其中包含表中单行值的类也负责对该表的查询,更新,插入和删除。 Active Record设计模式意味着您的对象与数据库中的表具有一对一的映射。

答案 1 :(得分:19)

数据访问对象(DAO)是专用于将模型/域对象持久保存到数据源的接口。这是一个reference

ActiveRecord 模式以类似的方式工作,但将持久性方法放在模型对象本身上,而DAO定义了一个离散的接口。

DAO模式的优点是:

  • 很容易定义另一种持久性风格,例如从数据库迁移到云,而不改变底层的实例,而外部接口保持不变,因此不会影响其他类。

  • 持久性问题远离主要模型对象关注模块化。

ActiveRecord模式的优点是简单。