相关疑难解决方法(0)

贫困领域模型:优点/缺点

我想知道使用贫血领域模型的优缺点(见下面的链接).

福勒文章

language-agnostic design-patterns

76
推荐指数
8
解决办法
1万
查看次数

使用数据映射器模式,实体(域对象)是否应该了解Mapper?

我是第一次使用Doctrine2,但我认为这个问题非常通用,不依赖于特定的ORM.

Data Mapper模式中的实体是否应该知道并使用 Mapper

我有几个具体的例子,但它们似乎都归结为同样的一般性问题.

如果我正在处理来自外部源的数据 - 例如a User有很多Messages- 并且外部源只提供最新的几个实体(如RSS提要),$user->addMessage($message)除非它知道Mapper,否则如何检查重复项,或者它通过集合"搜索"(似乎是一件低效的事情).

当然,控制器或事务脚本可以在将消息添加到用户之前检查重复项 - 但这似乎不太正确,并且会导致代码重复.

如果我有一个大型集合 - 再次User有很多Messages- User实体如何为集合提供限制和分页而不实际代理Mapper调用?

同样,控制器或交易脚本或任何使用实体可以直接使用映射来检索集合UserMessages通过次数,日期范围或其他因素的限制-而这也将导致代码重复.

答案是使用存储库并让实体知道它们吗?(至少对于Doctrine2,以及其他ORM使用的类似概念.)此时,实体仍然与Mapper相对分离.

php oop orm design-patterns datamapper

11
推荐指数
1
解决办法
3195
查看次数

标签 统计

design-patterns ×2

datamapper ×1

language-agnostic ×1

oop ×1

orm ×1

php ×1