【发布时间】:2011-10-02 05:13:26
【问题描述】:
数据访问对象和 Active Record 有什么区别?它们看起来完全一样,都在应用程序和持久层之间构建了一个层,并使用 SQL 查询抽象出直接数据库访问。
【问题讨论】:
标签: activerecord dao
数据访问对象和 Active Record 有什么区别?它们看起来完全一样,都在应用程序和持久层之间构建了一个层,并使用 SQL 查询抽象出直接数据库访问。
【问题讨论】:
标签: activerecord dao
数据访问对象 (DAO) 是专用于将模型/域对象持久化到数据源的接口。这是reference。
ActiveRecord 模式以类似的方式工作,但将持久性方法放在模型对象本身上,而 DAO 定义了一个离散接口。
DAO模式的优点是:
很容易定义另一种持久性风格,例如从数据库迁移到云,而不改变底层实现,而外部接口保持不变,因此不会影响其他类。
持久性关注点被模块化,远离主要的模型对象关注点。
ActiveRecord 模式的优点是简单。
【讨论】:
ActiveRecord本质上是一个被DAO取代的遗留模式。
ActiveRecord 本质上是一种遗留模式?许多框架仍然使用它。例如,Ruby on Rails、Mongoose、Sequelize、Django 等。
数据访问对象 (DAO) 是指数据层中负责在域中持久保存单独实体的对象。 Active Record 是一种执行 DAO 的特定方法,其中包含表中单行值的类还负责对该表的查询、更新、插入和删除。 Active Record 设计模式意味着您的对象与数据库中的表具有一对一的映射关系。
【讨论】: