Можно ли создавать объект в DAO?

У меня есть DAO, например, для доступа к базе данных токенов.
Можно ли использовать его для создания и немедленного сохранения новых объектов, как в примере ниже? (пример в PHP)

class TokenDao {
...
public function createToken($code) {
$token = new Token($code);
$this->entityManager->persist($token);
$this->entityManager->flush();
return $token;
}
}

Он немного объединяет фабрику объектов с DAO. Я думаю, что создание отдельной фабрики объектов и дао (и, возможно, перенос в фасад) — ненужные накладные расходы, но я хотел бы услышать от других, если это не плохая практика.

Я не нашел никаких положительных или отрицательных подсказок по статьям о шаблоне DAO, если это нормально или нет.

Спасибо за мнения / ответы.

1

Решение

По моему мнению, DAO следует использовать только для инкапсуляции базы данных, а не для выполнения какой-либо логики или создания.

В вашем примере другая проблема заключается в том, что если вы измените конструктор Token, вам придется изменить и TokenDao.

Мое мнение, создайте токен в отдельном слое от вашего DAO.

0

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

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

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