我的问题与@tereško在“谁应该处理复杂查询中的条件,数据映射器还是服务层? ”中的答案的更新部分有关?下面是参考和方便的代码。
$category = new Category;
$category->setTitle( 'privacy' );
$list = new ArticleCollection;
$list->setCondition( $category );
$list->setDateRange( mktime( 0, 0, 0, 12, 9, 2001) );
// it would make sense, if unset second value for range of dates
// would default to NOW() in mapper
$mapper = new ArticleCollectionMapper;
$mapper->fetch( $list );
foreach ( $list as $article )
{
$article->setFlag( Article::STATUS_REMOVED );
}
$mapper->store( $list );
在这段代码ArticleCollection
中是域对象的集合,我们称它们为Article
s。ArticleCollectionMapper
从数据库中获取数据并将其分配给 的那一刻,需要创建$list
实例(对于每一行)。Article
的实例是否Article
会通过类似的方法添加到我们的集合实例($list
)中$list->addArticle($newArticle)
,是否应该使用类似的工厂对象ArticleFactory
,或者是否还有其他我没有考虑过的选项?