例如:
我有一个有 10 个小部件的用户。除此之外,我还有一个管理器来管理其中的 5 个小部件。
我想检索由指定经理管理的用户小部件。因此,我在我的 WidgetMapper 中创建了一个名为 fetchUsersManagedWidgets($userId, $managerId) 的函数,该函数在数据库中查询这 5 个小部件并映射一组 Widget 对象。
我知道域对象不应该知道它们的映射器,但是我可以在 User 模型中创建一个调用 WidgetMapper 函数的函数吗?
例如
class Application_Model_User {
public function getWidgetsManagedBy($manager) {
$widgetMapper = new Application_Model_WidgetMapper;
return $widgetMapper->fetchUsersManagedWidgets($this->getId(), $manager->getId());
}
}
或者这是一条单行道,域对象永远不应该调用映射器函数?