Должен ли я передавать модель в виде инъекции зависимостей в шаблоне сопоставления данных или я должен объявить модель внутри класса сопоставления?Data Mapper - следует ли использовать инъекцию зависимостей?
class Mapper
{
public function __construct(
$model
)
{
$this->model = $model;
}
public function mapObject(array $row)
{
$this->model->setArticleId($row['article_id']) ;
$this->model->setTitle($row['title']);
$this->model->setDescription($row['description']);
$this->model->setContent(isset($row['content']) ? $row['content'] : null);
$this->model->setTemplate(isset($row['template']) ? $row['template']['path'] : null);
return $this->model;
}
}
или:
class Mapper
{
public function mapObject(array $row)
{
$model = new Model;
$model->setArticleId($row['article_id']) ;
$model->setTitle($row['title']);
$model->setDescription($row['description']);
$model->setContent(isset($row['content']) ? $row['content'] : null);
$model->setTemplate(isset($row['template']) ? $row['template']['path'] : null);
return $model;
}
}
Какой из них правильный?
благодарит за ответ. «В первом примере вы должны ввести модель с недопустимым состоянием, то есть неинициализированным. Разрешение недопустимого состояния может привести к ошибкам, и этого следует избегать ». Я не совсем понимаю это? не могли бы вы привести нам пример? благодаря! – laukok
Если вы позволяете модели иметь недопустимые (пустые) свойства в любой момент, вам нужно проверять ее достоверность каждый раз, когда вы ее используете, иначе вы не можете быть уверены, что она была инициализирована правильно. На программистах есть хорошая тема. По теме: http://programmers.stackexchange.com/questions/261585/should-a-getter-throw-an-exception-if-its-object-has-invalid- государство –