Сеттер в конструкторе? Адекватная ли конструкция: Показан кусок кода из модели новостей, в конструктор приходит базовая модель. Базовая модель, так же как и модель новостей, имплементирует ModelInterface.public function __construct(ModelInterface $model) { $this->setTable('news'); $this->model = $model; } private function setTable($table) { $this->table = BaseModel::PREFIX . $table; } Устанавливаю рабочую таблицу в конструкторе, и дальше использую ее в запросах
Да, данная конструкция в целом адекватна. Однако, следует учитывать, что использование сеттера в конструкторе может быть не самым лучшим подходом, поскольку сеттеры обычно предназначены для внешнего изменения свойств объекта. В данном случае, если установка таблицы является обязательной частью инициализации объекта, то, возможно, имеет смысл использовать сразу в конструкторе нетривиальную логику установки значения таблицы.
Также важно убедиться, что метод setTable() не используется за пределами данного класса, чтобы избежать нежелательных побочных эффектов. Кроме того, рекомендуется документировать эту логику в комментариях, чтобы другие разработчики могли понять, зачем таблица устанавливается именно таким образом.
Да, данная конструкция в целом адекватна. Однако, следует учитывать, что использование сеттера в конструкторе может быть не самым лучшим подходом, поскольку сеттеры обычно предназначены для внешнего изменения свойств объекта. В данном случае, если установка таблицы является обязательной частью инициализации объекта, то, возможно, имеет смысл использовать сразу в конструкторе нетривиальную логику установки значения таблицы.
Также важно убедиться, что метод setTable() не используется за пределами данного класса, чтобы избежать нежелательных побочных эффектов. Кроме того, рекомендуется документировать эту логику в комментариях, чтобы другие разработчики могли понять, зачем таблица устанавливается именно таким образом.