我一直在寻找 DataMapper, 出现在第一眼看到使用Email对象的图案。其他人说,它使用的DataMapper和/或领域对象的图案。

之间的区别是什么这些模式?

有帮助吗?

解决方案

之间的主要区别两种模式的是这样的:

  • 在Email你有一个领域对象,既知道所有的业务逻辑和如何保/更新自己的数据库,用户。getLinkToProfile()and User::找到(1)、用户::save(用户)

  • 在DataMapper图案你有一个领域对象,持有的所有商业逻辑,对于用户使用。getLinkToProfile()(或类似的东西),但知道 没有什么 有关数据库的问题,除了这个你必须映射器-的对象是负责保存、更新选择,等等。用户对象的数据库,这将有UserMapper::找到(1),UserMapper.保存(用户)

DataMapper是潜在的更为复杂,然后Email但这是一个很容易发展领域模型和数据库步然后用Email.

其他提示

活动的记录是非常沉重的,数据映射器和领域对象是分离了这些关切,所以你有一个更明确的代码这样做的各方面对于你"域名"或"实体"的对象。

我个人喜欢,不是说你要求,与分离进入领域对象、数据映射器,可能使用大会的模式,甚至一个数据传输模式,以确保明确分离,会发生什么要数据之间的一个数据库上层的应用程序。

...和简单的离职总是有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top