Так что я пытаюсь выяснить, возможно ли то, что я хочу сделать.Я пишу некоторый тестовый код для приложения, и у меня есть объекты, которые содержат свойства, представляющие некоторые элементы, которые мы имеем в интерфейсе для нашего продукта.Что я хочу сделать, так это уметь передавать приложение-исполнитель и объект данных в новый класс и динамически генерировать набор свойств средства доступа на основе подмножества свойств в объекте данных.Моя идея до сих пор:
- Создать подкласс свойства, включающий метаданные, необходимые для извлечения дополнительной информации из интерфейса
- Рефакторинг существующих объектов данных для использования нового подкласса свойства для соответствующихполя в пользовательском интерфейсе
- Создайте новый класс генератора, который принимает объект драйвера пользовательского интерфейса и объект данных, который
- отражает объект данных, чтобы получить список всех его членов, которые являютсяновый тип подкласса свойств
- сохраняет информацию из пользовательского интерфейса на основе метаданных в подклассе свойств для членов экземпляра класса генератора (при планировании использования
setattr
) - создает свойства во время выполнениясделать членов, созданных в (b), доступными только для чтения, и обеспечить интерфейс, совместимый с существующим кодом (т. е. используя
.[name]
вместо .[name]()
)
Я думаю, что явсе выяснили, кроме шага 3с.Есть ли способ динамически создавать свойства во время выполнения?Любая помощь будет принята с благодарностью.