Здравствуйте, alex_public, Вы писали:
_>Ты конечно же можешь привести примеры практических задач, которые эффективно решались бы только с помощью динамической интроспекции? )
Безусловно. Собственно, большая часть задач как раз статически и не решаема. Типичный пример — метаданные всевозможных плагинов. На момент компиляции анализирующего кода анализируемый недоступен даже в бинарном виде.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
_>>Ты конечно же можешь привести примеры практических задач, которые эффективно решались бы только с помощью динамической интроспекции? )
AVK>Безусловно. Собственно, большая часть задач как раз статически и не решаема. Типичный пример — метаданные всевозможных плагинов. На момент компиляции анализирующего кода анализируемый недоступен даже в бинарном виде.
Непонятно как это может быть примером подобной задачи, если существует множество различных реализаций плагинов и даже целых платформ на эту тему, без всякой интроспекции вообще.
Здравствуйте, alex_public, Вы писали:
_>Непонятно как это может быть примером подобной задачи, если существует множество различных реализаций плагинов и даже целых платформ на эту тему, без всякой интроспекции вообще.
Ну да, там интроспекция реализована вручную, обычно в виде метода, отдающего те же самые метаданные.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, alex_public, Вы писали:
_>>Непонятно как это может быть примером подобной задачи, если существует множество различных реализаций плагинов и даже целых платформ на эту тему, без всякой интроспекции вообще.
AVK>Ну да, там интроспекция реализована вручную, обычно в виде метода, отдающего те же самые метаданные.
Тоже вариант, особенно если этот метод реализован автоматически (через статическую интроспекцию). Но это вариант для передачи метаданных. А я вот что-то пока не вижу вообще необходимости в метаданных для системы плагинов, т.к. вызывающий код обычно всё же знает все возможные интерфейсы и надо только выяснить какие предоставляет конкретный плагин. Т.е. грубо говоря IUnknown более чем достаточно для реализации нормальной системы плагинов. Или быть может подразумевалась какая-то особенная хитрая система? )
Так может будет ещё какой-то пример пользы динамической интроспекции? А то этот как-то совсем не убедил пока.
Здравствуйте, AndrewVK, Вы писали:
_>>Непонятно как это может быть примером подобной задачи, если существует множество различных реализаций плагинов и даже целых платформ на эту тему, без всякой интроспекции вообще.
AVK>Ну да, там интроспекция реализована вручную, обычно в виде метода, отдающего те же самые метаданные.
+1
Итого, интроспекции подлежит только некая явно обозначенная часть метаинформации, а не вообще вся. Причем, на стороне этого плагина такая метаинформация доступна статически.