Active Record和DAO之间的区别?

hel*_*hod 22 activerecord dao

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

mat*_*mc3 20

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


Jas*_*ues 19

数据访问对象(DAO)是专用于模型/域对象的持久化到一个数据源的接口.这是一个参考.

ActiveRecord的图案以类似的方式工作,但把模型对象本身上的持久性的方法,而DAO限定离散的接口.

DAO模式的优点是:

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

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

ActiveRecord模式的优点是简单.

  • @AmirAbiri 谁说“ActiveRecord”本质上是一种遗留模式?许多框架仍在使用它。例如,Ruby on Rails、Mongoose、Sequelize、Django 等。 (2认同)