Я занимаюсь менеджером событий во Freepascal
Каждое событие является типом объекта TEvent (= object), каждый тип события должен быть производным от этого класса.
События различаются целочисленным идентификатором, назначаемым динамически.
Проблема в том, что я хочу получить идентификатор события экземпляра, и я не могу сделать это хорошо.
-
Все экземпляры класса (объекта) имеют уникальный идентификатор =>, поэтому это должно быть статическое поле.
-
Все классы имеют разные идентификаторы =>, поэтому они должны быть виртуальными.
-
Идентификаторы событий назначаются во время выполнения и могут изменяться =>, поэтому это не может быть простой метод
В общем, я не могу собрать все это вместе.
Я ищу элегантное решение, я не хочу писать жестко закодированную таблицу, воплощать ее в каждом конструкторе ... и т. Д., Я бы предпочел что-то, использующее преимущества полиморфизма
Может ли кто-нибудь помочь мне с другим техническим или дизайнерским решением?
Замечу, что я не хочу использовать класс вместо конструкции объекта. (Свойство не работает с объектами?: (