Was ist ein Wrapper in der Programmierung?
Das englische Wort Wrapper bezeichnet eine Verpackung oder Verpackung. Im Zusammenhang mit Software bezieht sich dieser Begriff auf Programme oder Code, die andere Programmkomponenten umgeben. Die Wrapper können aus verschiedenen Gründen verwendet werden: Sie werden häufig verwendet, um die Kompatibilität und Interoperabilität zwischen verschiedenen Softwarestrukturen zu verbessern oder um etwas visuell darzustellen, z. B. HTML oder CSS der Wrapper . Sie können sein Wrappers verschiedene Software – Komponenten, Produkte Software unabhängig, Architekturen Software , Klassen OOP oder Frameworks .
Wenn Sie innerhalb eines Programms Funktionen oder Programmbausteine in einer anderen Programmiersprache verwenden müssen, können diese Elemente “umbrochen” werden. Das Hauptprogramm kommuniziert nur mit dem Wrapper. Dies ist dafür verantwortlich, die Befehle an das umschlossene Programm zu übertragen und die Ergebnisse an das Hauptprogramm zurückzugeben. Der Wrapper ist die einzige Komponente des Prozesses, die in direktem Kontakt mit beiden Softwareteilen steht.
In der Welt der Programmierung und Softwareentwicklung haben Wrapper eine unendliche Anzahl von Verwendungsmöglichkeiten. In den folgenden Beispielen zeigen wir Ihnen, was ein Wrapper ist , wie er genau funktioniert und welche Aufgaben er übernimmt.
- Wrapper als Übersetzer von Benutzereingaben
- Wrapper für den Zugriff auf Datenbanken
- Wrapper in der objektorientierten Programmierung
- Wrapper zum Entwerfen von HTML-Dokumenten
- TCP-Wrapper auf Linux-Systemen
Wrapper als Übersetzer von Benutzereingaben
Formulare in Webprogrammen oder Anwendungen erwarten Eingaben , die das Programm verarbeiten kann. In US-amerikanischen Programmen werden Zahlen mit Dezimalstellen beispielsweise als Punkte anstelle von Kommas verstanden und in Fuß und Zoll gemessen. Wenn Sie diese Art von Softwarekomponente in Ihren eigenen Anwendungen verwenden, besteht nicht immer die Möglichkeit, sie an die nationalen Gepflogenheiten jedes Landes anzupassen, und folglich erhalten Sie fast immer fehlerhafte Ergebnisse oder sogar Programmfehler.
In diesen Fällen ist die Hülle die perfekte Lösung. Das Formular überträgt die Eingaben also nicht direkt an das externe Programm, sondern an den Wrapper . Dadurch wird sichergestellt, dass die Eingaben ausgewertet und in gültige Eingaben für das externe Programm übersetzt werden, ohne dass Änderungen erforderlich sind.
Wrapper für den Zugriff auf Datenbanken
In der Regel können Datenbanken verschiedener Hersteller aufgrund von Kompatibilitätsproblemen zwischen verschiedenen Datentabellen, Abfragen oder Abfragesprachen kaum zusammen verwendet werden. In diesen Fällen können Wrapper auch sehr nützlich sein. Die Wrapper aller Art versuchen, die vorhandenen Inkonsistenzen zwischen verschiedenen Softwareschnittstellen zu erkennen und zu umgeben.
Ein klassisches Beispiel für einen Wrapper ist Java Database Connectivity (JDBC), eine Datenbankschnittstelle für die Oracle-Java-Plattform. In seiner Rolle als Wrapper ermöglicht der JDBC den Zugriff auf relationale Datenbanken von verschiedenen Anbietern. Der JDBC stellt die Verbindung mit den verschiedenen Datenbanken über spezielle Treiber her.
Die SQL-Abfragen der Programme richten sich ausschließlich an den JDBC und nicht an die eigenen Datenbanken. Der JDBC konvertiert die Abfragen in die Abfragesprache, die von der betreffenden Datenbank verwendet wird, und gibt das Ergebnis in einem Java-kompatiblen Format zurück. Auf diese Weise erhält das Programm, das die Abfrage ausführt, die Daten unabhängig von der verwendeten Datenbank immer in einem homogenen Format.
Wrapper in der objektorientierten Programmierung
Bei der objektorientierten Programmierung werden unterschiedliche Strukturmuster verwendet , die unabhängig von der verwendeten Programmiersprache immer gleich funktionieren. Layout-, Adapter- und Dekorationsmuster gehören zur Kategorie der Strukturmuster und gelten als Wrapper .
Ein Adapter umschließt zwei inkompatible Schnittstellen zwischen verschiedenen Klassen. Durch die Übersetzung einer Schnittstelle in die andere können Klassen nun wieder miteinander kommunizieren. Dies ist sehr wichtig, wenn wir weiterhin Klassen oder ganze Klassenbibliotheken in neuen Projekten verwenden möchten. Diese Bibliotheken verwenden standardisierte und eindeutige Schnittstellen, die nicht geändert werden sollten, da sie mit einer großen Anzahl von Programmen kompatibel sein müssen. Der Wrapper , in diesem Fall der Adapter, ist die bestimmende Zwischenverbindung für die Kommunikation.
Mit einem Dekorateur können Sie eine Klasse um zusätzliche Funktionen erweitern, ohne sie zu ändern. Für das abfragende Programmobjekt zeigt der Dekorator dieselbe Schnittstelle wie die ursprüngliche Klasse an. Somit erfordert das Objekt, das es konsultiert, keine Änderung. In seiner Wrapper- Funktion übergibt der Dekorator die Abfragen an die Klasse. Neue Funktionen, die nicht in der Klasse enthalten sind, werden direkt vom Dekorateur verarbeitet. Die Ergebnisse werden dann so zurückgegeben, dass das abfragende Objekt sie als Ergebnisse der dekorierten Klasse wahrnimmt.
Wrapper zum Entwerfen von HTML-Dokumenten
Es ist sehr üblich, beim Entwerfen (Ändern der) HTML- und CSS-Webseiten Wrapper zu verwenden . Ohne Wrapper würden selbst kleinste Änderungen, z. B. das Ändern der Randbereiche eines Browserfensters, bedeuten, dass mehrere Stylesheets geändert und schließlich überprüft werden müssen, ob alle noch kompatibel sind.
Es ist viel einfacher, den gesamten Inhalt der Seite in einem DIV-Container abzulegen , wie das folgende Beispiel zeigt:
<html> <head> ... </head> <body> <div> ? </div> </body> </html>
Im Wrapper- Container befindet sich der eigentliche Inhalt der Seite.
In der entsprechenden CSS-Datei wird der Wrapper als Stylesheet definiert :
body { margin: 0; padding: 0 } .wrapper { width: 500px; margin: 25px auto; }
In diesem Beispiel wird der Parameter width: verwendet , um dem Container eine Breite von 500 Pixel zuzuweisen. Der obere und untere Rand werden durch den Randparameter festgelegt: auf einen Wert von 25 Pixel. Der linke und rechte Rand werden automatisch aus der Breite des Browserfensters und der Breite des Containers abgeleitet.
Es reicht aus, den Wrapper so zu ändern, dass die seitlichen Ränder der Seite geändert werden, ohne dass mehr in den HTML- oder CSS-Code eingegriffen werden muss.
TCP-Wrapper auf Linux-Systemen
Der inetd- Hintergrunddienst unter Linux und anderen UNIX-basierten Betriebssystemen wird als TCP- Wrapper ausgeführt . Das inetd- Element überwacht Netzwerk- Sockets und akzeptiert Verbindungsabfragen. Eine Konfigurationsdatei bestimmt die zu berücksichtigenden Ports. Die Abfragen werden ausgewertet und der für jeden Port in der Konfigurationsdatei angegebene inetd- Dienst wird gestartet. Diese Programme sind normalerweise Daemon-Instanzen, die im Hintergrund ausgeführt werden.
Wenn die Verbindung beendet wird, stoppt inetd den Dienst, der automatisch erneut gestartet wird. Wenn Sie den Dienst nur bei Bedarf starten, können Sie im Vergleich zum automatischen Starten von Netzwerkdiensten, die häufig nicht einmal benötigt werden, viele Systemressourcen einsparen. Das inetd- Element fungiert als Wrapper, an den alle Programme ihre Netzwerkabfragen richten, ohne direkt mit den verschiedenen Diensten zu kommunizieren.
TCP-Wrapper können auch verwendet werden, um unerwünschten Zugriff von einem Netzwerk aus zu verhindern. In diesen Fällen fragt inetd oder eine spezielle Serversoftware den TCP- Wrapper ab . Die Hosts und Computer, die akzeptiert oder abgelehnt werden sollen, werden in den Dateien /etc/hosts.allow und /etc/hosts.deny aufgezeichnet .