4

您是否已从ActiveRecord重构为DataMapper模式?什么条件促使切换?我主要对基于 Web 的应用程序感兴趣,但想知道在任何环境中伴随这种移动的挑战。

4

3 回答 3

7

我真的很喜欢 ActiveRecord 模式的简单性。但是,我一直在远离它,转而使用更大的网络应用程序。我发现随着基于 ActiveRecord 的项目变得越来越复杂,ActiveRecord 对象变得很大并且包含太多代码。

通过引入存储库模式(本质上是数据映射器),域模型类变得更简单,并且数据映射/数据访问逻辑保持独立。

此外,模拟 ActiveRecord 对象非常困难(不可能?),因为它们使用静态方法。

于 2008-10-08T04:56:13.953 回答
1

我使用的框架提供表数据网关和行数据网关作为易于使用的内置类,因为我必须指定的只是主键(如果不只是“id”)和表的名称(如果不是与类名相同)。然而,我最近在重构过程中发现,当域和数据库之间必须发生更复杂的映射时,这些模式开始退化。

例如,我目前正在重构一个网站的代码以使用 Data Mapper,以便我可以使用单表继承(使用继承映射)。基本上,只要数据库和域之间的关系变得比一对一更复杂,我都会强烈考虑使用数据映射器。

于 2009-01-21T21:35:37.520 回答
0

我使用camping在 PDE-Build 之上编写了一个集成构建系统。我最初使用 ActiveRecord,但我需要对数据库进行非阻塞线程安全访问,因此我转而使用 Data Mapper。

我因错误而感到悲痛,但最新版本似乎相当稳定。

于 2008-10-08T05:42:43.187 回答