Каково происхождение термина «отражение»? Это больше похоже на самоанализ. Почему это так не называется?
Самоанализ : взгляд внутрь; в частности, акт или процесс самоанализа.
- акт отражения или состояние отражения.
- картинка; представление; двойник
- фиксация своих мыслей на чем-либо; тщательное рассмотрение
- мысль, возникающая при размышлении или медитации.
language-agnostic
reflection
tvanfosson
источник
источник
Ответы:
Есть интересный ответ во французской статье в Википедии для Reflection ( здесь )
Отражение можно разложить на две части:
Итак, размышление - это «более сильное» свойство, чем самоанализ. Вот почему вы говорите самоанализ типа для способности знать типы во время выполнения (и их изменение - это еще одно действие: преобразование / приведение).
РЕДАКТИРОВАТЬ: на самом деле я только что понял, что первый ответ говорит именно об этом ^^. Пора отключиться ...
источник
Рефлексия исходит из идеи «самоанализа, самомодификации и самовоспроизведения», отражения самого себя с целью изменения. В программировании вы используете отражение, чтобы изучить структуру самой программы в контексте ее использования, а не просто исследовать ее. Вы получаете представление программы, которую вы можете использовать для ее изменения, а не данные, с которыми она работает.
Более подробную информацию можно найти в статье в Википедии. .
источник
Существует еще одна концепция, называемая интроспекцией типа, которая относится к способности определять тип объекта во время выполнения.
изменить: я понимаю, что ваш вопрос был задуман как независимый от языка, но в Java отражение используется для определения членов объекта, тогда как интроспекция позволяет вам определить, какие свойства JavaBeans имеет объект, поэтому класс интроспекции находится в пакет java.beans. Я не уверен, в чем точная разница между терминами на других языках, однако,
источник
Термин «отражение» взят из диссертации Брайана Кантуэлла Смита 1982 г., которую можно найти по адресу http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf.
То, что стало называться отражением, часто является просто интроспекцией, то есть доступом к метаданным. Требования Смита к отражению включали причинно-следственную связь с метаданными, и это обычно отсутствующий компонент. Один из способов представить отражение - это доступ к реализации, а не просто реализация некоторого нового экземпляра вычисления, но доступ вычислений к его собственной реализации. Конечно, исходное api отражения Java было неправильно названо, поскольку оно не было отражающим в этом смысле.
источник
В .Net я думаю, что термин «Отражение» очень уместен, потому что исследуется не сам тип, а манифест кода, который является только описанием.
источник
Рефлексия в смысле определений 3 и 4 может быть интроспективной. То есть самоанализ - это отражение самого себя. Я думаю, что интроспекция - лучшее слово для обозначения самого акта анализа кода, потому что это слово более конкретное, но я не думаю, что размышление совершенно неуместно.
источник