最近在做技术选型,想要引入一些新的开发语言,开发技术到技术团队。大众编程语言在 WEB 方面的稳定性,已经被人所熟知了。但是数据库版本控制方面,每个程序设计语言做的深度和稳定性都有所区别。数据库版本控制和 ORM 密切相关。而…
提到 ORM,就不得不聊聊 ActiveRecord
和DataMapper
。
DataMapper
DataMapper 是一种 ORM’s pattern。
一般,使用 DataMapper,你会将所有的查询方法写到 repositories
里面。所有的数据操作都会在repositories
中进行。例如增加,加载,删除,查询。使用DataMapper
的时候,entity 会显得有些“呆滞”。一般情况下,定义好属性和一点简单的方法,不会频繁的 entity 进行操作了。
所以,大多数情况下,程序员使用 repositories 与数据库进行交互。
这种模式常见于Spring JPA
。
ActiveRecord
在 ActiveRecord
模式中,model 的属性和方法,全都在一起定义。
所以,在大多数情况下,程序员直接使用 model
与数据库进行交互。
这种模式常见于 Django
和 Ruby on rails
。
我应该选择哪一种?
选择哪一种 ORM pattern 取决当前的应用环境。
Data Mapper
因为其分离性,在大型应用的开发中往往会更有效率Active Record
使得编写 ORM 变得很容易,因此在小型应用中很受欢迎。Simplicity
往往是可维护性的一个关键指标。