Когда нам DAO / Repository и когда использовать Inversion of Control?

Цель:

Я пытаюсь «получить данные внутри моего класса контроллера». Есть два подхода, которые я пытаюсь оценить.

  • Внедрение DAO в мой Контроллер — Контроллер узнает о «чужой» конструкции предоставления данных (репозиторий, DAO, модель). Контроллер может запрашивать эти конструкции для получения необходимых данных.

  • Создание и заполнение контроллера в другом месте — контроллер не знает ни о какой «чужой» конструкции предоставления данных. Он напрямую заполняется необходимыми данными.

Внедрение объекта доступа к данным

Я могу внедрить свой объект DAO в контроллер и использовать его для вызова различных данных, связанных с функциональностью, которую я хочу реализовать.

$controller = new Controller(New DAO());
echo $controller->dao->getData();

Мой контроллер знать ДАО.

Создание и заполнение контроллера напрямую

Я могу использовать шаблон Factory Method или Builder или DataMapper и Создайте & населять мой контроллер с данными, которые ему нужны, без необходимости вводить какой-либо DAO в сам контроллер.

//factory
$data = $this->entityManager->getSomeData();
$controller = new Controller();
$controller->setData($data);
echo $controller->getData();
return $controller;

Контроллер есть не знают ДАО. Это просто заполнено данными непосредственно в другом месте.

Какой способ рекомендуется для какой ситуации?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]