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