1
7
我真的很喜欢ActiveRecord模式,因为它很简单。不过,我一直在为更大的网络应用而放弃它。我发现,随着基于ActiveRecord的项目变得更加复杂,ActiveRecord对象变得很大,并且包含了太多的代码。 通过引入存储库模式(本质上是数据映射器),域模型类变得更简单,数据映射/数据访问逻辑保持独立。 而且,这很困难(不可能?)模拟ActiveRecord对象,因为它们使用静态方法。 |
2
1
我使用一个框架,它将表数据网关和行数据网关提供为易于使用的内置类,因为我只需要指定主键(如果不只是'id')和表名(如果与类名不同)。然而,我最近在重构过程中发现,当域和数据库之间必须发生更复杂的映射时,这些模式开始退化。 例如,我目前正在将一个网站的代码重构为使用数据映射器,以便使用单表继承(使用继承映射)。基本上,当数据库和域之间的关系变得比一对一复杂时,我会强烈考虑使用数据映射器。 |
JBlake · 唯一验证基于datetime属性的存在,而不是值? 6 年前 |
Serge · Yii-查找具有零相关记录的记录 6 年前 |
waynard · Rails 5左外连接与WHERE查询相结合 6 年前 |
OKMantis · Ruby on Rails中的交叉引用表 6 年前 |
Grey · 访问不同子控制器中的不同关系 6 年前 |