Zum Inhalt springen

„Reflection (Programmierung)“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
D (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
ArtMechanic (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
[[en:Reflection (computer science)]]
[[en:Reflection (computer science)]]
<!-- bullshit - in der programmierung ist reflektion ganz allgemein, daß ein programm erkenntnisse über seine eigene struktur gewinnen kann, das hat mit OOP nichts zu tun. -->
<!-- In der programmierung ist reflektion ganz allgemein, daß ein programm erkenntnisse über seine eigene struktur gewinnen kann, das hat mit OOP nichts zu tun. -->
In der [[Objektorientierte Programmierung|objektorientierten Programmierung]] (OOP) spricht man von '''Reflexion''' (engl. ''reflection''), wenn zur Laufzeit eines [[Computerprogramm|Programmes]] Informationen über Eigenschaften von Typen und deren Mitgliedern (engl. ''member'') gesammelt werden.
In der [[Objektorientierte Programmierung|objektorientierten Programmierung]] (OOP) spricht man von '''Reflexion''' (engl. ''reflection''), wenn zur Laufzeit eines [[Computerprogramm|Programmes]] Informationen über Eigenschaften von Typen und deren Mitgliedern (engl. ''member'') gesammelt werden.



Version vom 14. November 2004, 01:17 Uhr

In der objektorientierten Programmierung (OOP) spricht man von Reflexion (engl. reflection), wenn zur Laufzeit eines Programmes Informationen über Eigenschaften von Typen und deren Mitgliedern (engl. member) gesammelt werden.

Ein Typ (engl. type) ist dabei i. d. R. eine Klasse (engl. class), die wiederum verschiedene Mitglieder (Attribute, Eigenschaften, Methoden, Schnittstellen) besitzen, die ihrerseits über Eigenschaften verfügen können.

Reflexion ermöglicht es nun, zur Laufzeit Informationen über Klassen oder deren Instanzen abfragen zu können. Bei einer Methode sind das u. a. deren Sichtbarkeit, die Art des Rückgabewertes oder die Art der Übergabeparameter. Die Umsetzung ist dabei sprachspezifisch realisiert.

Hochsprachen wie Java (java.lang.reflect) oder die Sprache C# (System.Reflection) des .NET-Frameworks bieten dazu entsprechende Pakete (engl. package) bzw. Namensräume (engl. namespace) an.

Eine wichtige Rolle spielt die Verwendung von Reflexion bei der aspektorientierten Programmierung, im Zusammenhang mit Generizität (d. h. der typsicheren Programmierung), aber auch in Fragen der Persistenz (persistente Datenhaltung von Objekten und deren Beziehungen).

Siehe auch

Objektorientierte Programmierung, Aspektorientierte Programmierung