Skąd pochodzi termin refleksja? To bardziej przypomina introspekcję. Dlaczego tak się nie nazywa?
Introspekcja : spojrzenie do wewnątrz; w szczególności akt lub proces samooceny.
Odbicie :
- akt odbicia lub stan odbicia.
- obraz; reprezentacja; odpowiednik
- utrwalenie myśli na czymś; rozważne przemyślenie
- myśl pojawiająca się podczas rozważania lub medytacji.
language-agnostic
reflection
tvanfosson
źródło
źródło
Odpowiedzi:
Ciekawa odpowiedź znajduje się we francuskim artykule na Wikipedii dla Reflection ( tutaj )
Odbicie można rozłożyć na dwie części:
Zatem refleksja jest „silniejszą” właściwością niż introspekcja. Dlatego mówisz o introspekcji typu aby poznać typy w czasie wykonywania (a ich zmiana to kolejna czynność: konwersja / rzutowanie).
EDYCJA: właściwie właśnie zdałem sobie sprawę, że pierwsza odpowiedź mówi dokładnie to ^^. Czas się odłączyć ...
źródło
Refleksja pochodzi z idei „samokontroli, samomodyfikacji i autoreplikacji”, refleksji nad sobą w celu zmiany. W programowaniu używasz refleksji, aby zbadać strukturę samego programu w kontekście używania go, zamiast tylko go badać. W zamian otrzymujesz reprezentację programu, którego możesz użyć do jego modyfikacji, a nie dane, na których on działa.
Więcej informacji można znaleźć w artykule na Wikipedii. .
źródło
Istnieje inna koncepcja zwana introspekcją typu, która odnosi się do możliwości określenia typu obiektu w czasie wykonywania.
edytuj: Zdaję sobie sprawę, że twoje pytanie miało być niezależne od języka, ale w Javie refleksja służy do określenia, jakie elementy ma obiekt, podczas gdy introspekcja pozwala zidentyfikować właściwości JavaBeans, które ma obiekt, dlatego klasa introspekcji jest w pakiet java.beans. Nie jestem pewien, jaka byłaby dokładna różnica między terminami w innych językach,
źródło
Termin refleksja pochodzi z rozprawy doktorskiej Briana Cantwella Smitha z 1982 r., Którą można znaleźć pod adresem http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf
To, co zaczęto nazywać refleksją, często jest jedynie introspekcją, tj. Dostępem do metadanych. Wymagania Smitha dotyczące refleksji obejmowały związek przyczynowy z metadanych wstecz i jest to zwykle brakujący element. Jednym ze sposobów wyobrażenia sobie refleksji jest dostęp do implementacji, a nie tylko wykonanie jakiejś nowej instancji obliczenia, ale dostęp obliczenia do jego własnej implementacji. Z pewnością oryginalny interfejs API refleksji Java został błędnie nazwany, ponieważ nie był odbiciowy w tym sensie.
źródło
W .Net myślę, że termin Odbicie jest bardzo odpowiedni, ponieważ to nie sam typ jest badany, jest manifestem kodu, który jest tylko opisem.
źródło
Refleksja w znaczeniu definicji 3 i 4 może mieć charakter introspektywny. Oznacza to, że introspekcja jest refleksją nad sobą. Myślę, że introspekcja jest lepszym słowem do określenia samego aktu analizującego kod, ponieważ słowo jest bardziej szczegółowe, ale nie uważam, że refleksja jest całkowicie niewłaściwa.
źródło