Reflexion

reflection

Die Bezeichnung Reflexion wird bei der Übertragung von Signalen benutzt, und zwar sowohl bei der Funkübertragung als auch bei der drahtgebundenen Übertragung und bei der Schallabstrahlung. Darüber hinaus wird die Bezeichnung Reflexion auch in der objektorientierten Progammierung benutzt.

Reflexion im Kontext mit der Übertragung von elektrischen, optischen und akustischen Signalen.
  1. Reflexionen entstehen durch Inhomogenitäten innerhalb eines Übertragungsmediums, bei Übergängen zwischen zwei Übertragungsmedien oder beim Übergang zwischen Medien mit unterschiedlicher Dichte, wie im Falle von Lichtwellenleitern. Bei der Reflexion wird ein Signalteil an den Inhomogenitäten oder den medientechnischen Übergängen reflektiert und läuft in dem Medium zur Quelle zurück. Bei leitergebundenen Übertragungen ist die Größe der Reflexionen abhängig von der Impedanzdifferenz, die beispielsweise in einer Steckverbindung oder am Leitungsabschluss existiert. Kabel, die impedanzrichtig, also mit dem Wert der Kabelimpedanz abgeschlossen sind, sind reflexionsfrei.

    Bei der Reflexion wird ein Signalteil, der abhängig ist von der Impedanzdifferenz, von dieser impedanzabhängigen Stoßstelle reflektiert und überlagert das Originalsignal. Dies hat zur Folge, dass das Originalsignal verstümmelt wird. Bei extremen Impedanzunterschieden, beispielsweise bei Kurzschluss oder Unterbrechung, kann die Verstümmelung bis zum Auslöschen oder bis zur Verdoppelung des Originalsignals gehen.

    Das Maß für die Reflexion ist der Reflexionsfaktor, der in dem großgeschriebenen griechischen Buchstaben Gamma angegeben wird.

  2. In der optischen Übertragungstechnik spielen Reflexionen in zweierlei Hinsicht eine ganz entscheidende Rolle: Einerseits für die Übertragung des Lichts im Lichtwellenleiter, andererseits als Störfaktor bei unerwünschten Reflexionen an Inhomogenitäten oder Verbindungen.

    Grenzstrahl und Totalreflexion an Medien
    Grenzstrahl und Totalreflexion an Medien lexikon, kompendium, computer, it, elektronik

    Die übertragungstechnische Komponente wird durch unterschiedliche Dichten von Kern- und Mantelglas erreicht, was zur Folge hat, dass der Lichtstrahl am Mantelglas eine Totalreflexion erfährt und im Kernglas verbleibt. Die die Übertragung negativ beeinflussenden Reflexionen entstehen an Inhomogenitäten, Spleißen und Steckern.

  3. In der Akustik ist die Reflexion der Schallwellen frequenzabhängig und tritt in verstärktem Maße bei mittleren und hohen Tonfrequenzen auf. Der reflektierte Schall ist der Hall. Die Schallwellen werden beim Auftreffen auf einen Körper in Abhängigkeit von dessen Größe, Material und Oberflächenbeschaffenheit reflektiert. Bei einem harten Körper mit glatter Oberfläche entspricht der Einfallswinkel dem Ausfallswinkel. Bei gewölbten Körpern erfolgt je nach Wölbung eine Streuung oder eine Bündelung des reflektierten Schalls. Bei weichen Materialien erfolgt eine Absorption.

    Treffen reflektierte Schallwellen mit dem direkt abgestrahlten Schall zusammen, dann überlagern sich die beiden Schallsignale. Sind sie kohärent, das heißt, sind ihre Phasenlagen gleich, dann summieren sie sich, sind sie inkohärent, subtrahieren sich ihre Pegel. Diesen Effekt nennt man Kammfiltereffekt.

Reflexion im Kontext von objektorientierter Programmierung.

In der objektorientierten Programmierung benennt die Reflexion eine Möglichkeit, bei der eine Software zur Laufzeit über entsprechende Schnittstellen auf Informationen zugreifen kann, die die Struktur der Software verdeutlichen. Die Struktur eines Programms wird dabei durch sogenannte Meta-Informationen beschrieben. Jedoch ist es anhand dieser Informationen nicht möglich, die Struktur einer Software zu modifizieren. Einen nahen Bezug zur Reflexion hat die Introspektion.

Reflexion bezeichnet ein Konzept, Klassen und Objekte, die zur Laufzeit im Speicher gehalten werden, auszulesen und diese in begrenztem Umfang auch zu modifizieren. Das Konzept wird jedoch nicht von allen objektorientierten Programmiersprachen unterstützt. Beispielsweise gehen bei der Übersetzung von C++ alle spezifischen Informationen - auch Meta-Informationen genannt - wie beispielsweise die Bezeichnung von Attributen, Klassen und Objekten durch die vom Compiler verwendete Zeigerarithmetik verloren. Dagegen sind diese Informationen in anderen objektorientierten Programmiersprachen wie Smalltalk, Python, Ruby, C-Sharp (C#) oder Java in unterschiedlichsten Ausprägungen zur Laufzeit eines Programms vorhanden. Häufig wird im Zusammenhang mit Reflexion auch der Begriff der Introspektion genannt. Hierunter ist zu verstehen, dass die Meta-Informationen zusätzlich Angaben zu einer Komponente bereitstellen.

Meta-Informationen fassen Informationen über die Struktur eines Programms zusammen. Diese Informationen können sein:

  • Welche Klassen existieren?
  • Was sind deren Unter- sowie Oberklassen?
  • Was sind deren Attribute und Methoden?
  • Welche Exemplare der Klassen gibt es?
  • Welche Operationen unterstützen diese?
  • Welche Methoden sind implementiert?

Sofern diese Meta-Informationen zur Laufzeit einer Software zur Verfügung stehen, können diese beispielsweise dazu genutzt werden, Regeln für die Abbildung von Klassen auf die Tabellen einer relationalen Datenbank zu definieren. Object Relational Mapping Tools verwenden häufig den Mechanismus der Reflexion, um zur Laufzeit einer Software Informationen über deren Struktur - die Klassen und deren diesbezüglichen Objekte - zu generieren. Ein Beispiel dafür ist Hibernate - das ist ein als Open Source verfügbares Framework, welches Objekte auf relationale Datenbanken abbildet.

In diesem Zusammenhang wird auch von Meta-Objekten gesprochen, wenn die Elemente - Klassen, Attribute und Methoden - der Struktur einer Software zur Laufzeit einer Software als Objekte zur Verfügung stehen.

Programmiersprachen wie Java oder die proprietäre Sprache C# bieten zur Programmierung von Reflexion entsprechende Pakete bzw. Namensräume an - bei Java ist es das Paket java.lang.reflect und beim .NET-Framework der Namensaum System.Reflection.

In Java können mittels Reflexion Informationen nicht nur ermittelt sondern auch modifiziert werden. Das bezieht sich jedoch nur auf die Daten des Programms und nicht auf dessen Struktur insgesamt. Somit ist es nicht möglich, neue Methoden einzufügen oder weitere Klassen dynamisch zur Laufzeit zu erstellen. Jedoch können die Attribute eines Objektes geändert oder dynamisch dessen Methoden aufgerufen werden. Häufig wird Reflexion hinsichtlich der Persistierung von Objekten eingesetzt - dabei werden Objekte zur Laufzeit in eine Datenbank eingefügt. Auch findet das Konzept der Reflexion bei Java Beans, bei Programmen zum Debuggen oder GUI-Buildern Verwendung, wodurch diese Programme häufig als Meta-Programme bezeichnet werden. Sogenannte Meta-Programme arbeiten immer auf Klassen und Objekten externer Programme.

Inhalt teilen

Partner