目的:
我正在寻求“在我的Controller类中获取数据”。我试图评估两种方法。
将DAO注入我的控制器 - 控制器意识到“外来”数据提供构造(存储库,DAO,模型)。 Controller可以查询这些结构以接收所需的数据。
在其他地方创建和填充控制器 - 控制器不会识别任何“外部”数据提供构造。它由所需的数据直接填充。
注入数据访问对象
我可以将我的DAO对象注入Controller并使用它来调用与我想要实现的功能相关的各种数据。
$controller = new Controller(New DAO());
echo $controller->dao->getData();
我的控制器是知道的DAO。
直接创建和填充控制器
我可以使用Factory Method或Builder模式或DataMapper以及 create&使用所需的数据填充我的控制器,而无需将任何DAO注入控制器本身。
//factory
$data = $this->entityManager->getSomeData();
$controller = new Controller();
$controller->setData($data);
echo $controller->getData();
return $controller;
控制器不知道DAO的。它只是直接在其他地方填充数据。
在什么情况下推荐哪种方式?