Насколько сильно это нарушает ООП? Создание свойства снаружи? В общем есть экшен, которому после создания нужно передать его ID.
В принципе, можно было бы через конструктор, но я изначально решил что все экшены будут изолированны от логики движка. Да и в каждый класс дописывать одинаковый конструктор тупо как-то.$controller = new SomeAction();
$controller->actionId = $actionId;
Еще вопрос сильно ли много эта операция(создание свойства) ест памяти?
Или проще сделать отдельный регистр с массивом соответствий "название - ID", а искать ID уже внутри объекта по static::class

21 Авг 2019 в 07:01
244 +1
0
Ответы
1

Создание свойства снаружи объекта не является нарушением основных принципов объектно-ориентированного программирования (ООП), но может нарушать принцип инкапсуляции, так как свойство становится доступным извне без контроля объекта. Это может привести к непредсказуемым последствиям и усложнить отслеживание состояния объекта.

С точки зрения памяти, создание нового свойства не должно сильно повлиять на объем потребляемой памяти. Однако, если создавать много объектов с различными свойствами, это может привести к накоплению лишней памяти.

Более правильным подходом может быть использование отдельного реестра (реестра действий или соответствий "название - ID") для хранения соответствий и поиска ID внутри объекта по имени действия. Это позволит избежать нарушения инкапсуляции и обеспечить более удобное и эффективное управление действиями объекта.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир