例えば:
10個のウィジェットを持つユーザーがいます。それに加えて、これらのウィジェットのうち 5 つを管理する Manager があります。
指定したマネージャーが管理しているユーザーのウィジェットを取得したいと考えています。そこで、WidgetMapper に fetchUsersManagedWidgets($userId, $managerId) という関数を作成しました。この関数は、これら 5 つのウィジェットのデータベースをクエリし、Widget オブジェクトの配列をマップします。
ドメイン オブジェクトがそのマッパーを認識する必要がないことはわかっていますが、WidgetMapper の関数を呼び出す User モデルで関数を作成できますか?
例えば
class Application_Model_User {
public function getWidgetsManagedBy($manager) {
$widgetMapper = new Application_Model_WidgetMapper;
return $widgetMapper->fetchUsersManagedWidgets($this->getId(), $manager->getId());
}
}
それとも、これは一方通行であり、ドメイン オブジェクトはマッパー関数を呼び出すべきではありませんか?