150 likes | 233 Views
-LABORPRAKTIKUM- SOMMERSEMESTER 2005. „Umsetzung von Pattern“. Muster: Proxy Gruppe: Lars Waldmann Anja Fiegler Quelle: Gamma, E., Helm, R., Jonson, R., Vlissides, J., „Entwurfsmuster“, Addison Wesley, Bonn, 1996. Inhalt. Zweck Motivation Anwendbarkeit
E N D
-LABORPRAKTIKUM-SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe: Lars Waldmann Anja Fiegler Quelle: Gamma, E., Helm, R., Jonson, R., Vlissides, J., „Entwurfsmuster“, Addison Wesley, Bonn, 1996
Inhalt • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
1. Zweck • Zugriffskontrolle auf ein Objekt, durch Vorlagerung eines Stellvertreterobjektes • auch als Surrogate bezeichnet • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
2. Motivation • Verzögerung der vollen Kosten für die Erzeugung und Initialisierung bis das Objekt tatsächlich benutzt wird • z.B. ein Editor, der grafische Objekte einbetten kann, die Erzeugung mancher grafischen Objekte, wie z.B. großer Bilder, kann sehr teuer sein, so dass es vermieden wird, alle teuren Objekte auf einmal zu erzeugen • teure Objekte werden also erst auf Verlangen erzeugt • bei dem Bildproxy also erst dann, wenn das Bild sichtbar wird • Verwendung eines anderen Objektes (Proxy) anstelle des Bilds Platzhalter • Proxy Verhalten entspricht dem des Bildes • Erzeugung des Bildes, wenn es benötigt wird • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
3. Anwendbarkeit • Proxymuster ist anwendbar – wenn Bedarf nach einer anpassungsfähigen und intelligenteren Referenz auf ein Objekt als einen einfachen Zeiger besteht • Folgende Proxymuster sind anwendbar • Remote Proxy • Virtuelles Proxy • Schutzproxy • Smart – Reference • Cache Proxy • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
4. Proxymuster und ihre Eigenschaften • Remote Proxy • stellt einen lokalen Stellvertreter für ein Objekt in einem anderen Adressraum dar • Kodieren eine Anfrage und ihre Argumente und senden sie an das eigentliche Subjekt in einem anderen Adressraum • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster • Virtuelles Proxy • erzeugt teure (speicher- oder zeitintensive) Objekte erst bei wirklicher Benutzung , wie z.B. der Bildproxy • Können zusätzliche Informationen über das eigentliche Objekt zwischenspeichern, so dass sie den Zugriff verzögern
4. Proxymuster und ihre Eigenschaften • Schutzproxy • kontrolliert den Zugriff auf das Originalobjekt, wird verwendet, um verschiedenen Objekten unterschiedliche Zugriffsrechte auf ein Objekt zu gewähren • Überprüfen, dass der Aufrufer die zum Ausführen des Befehls notwendigen Zugriffsrechte besitzt • Smart-Reference • ist ein Ersatz für einen einfachen Zeiger, der zusätzliche Aktionen ausführt, wenn auf das Objekt zugegriffen wird, z.B. Referenzzählung, Persistenzsicherung und Locking • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
4. Proxymuster und ihre Eigenschaften • Cache Proxy • Häufig angeforderte Objekte, die sich selten ändern werden zwischengespeichert, um die Ergebnisse der Anforderungen sofort und kostengünstig liefern zu können • Häufiger Einsatz als Internet Proxy • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
5. Struktur • Struktur Proxymuster • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
5. Struktur • Objektdiagramm einer Proxystruktur zur Laufzeit • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
6. Schlussfolgerungen • Proxymuster führen eine Ebene der Indirektion beim Zugriff auf ein Objekt ein • Vielfältige Verwendung dieser Indirektion, je nach Proxymuster : • Remote-Proxy kann die Tatsache verstecken, dass ein sich Objekt in einem anderen Adressraum befindet • Virtuelles Proxy kann Optimierungen ausführen, wie z.B. das Erzeugen eines Objektes auf Verlangen • Schutzproxies und Smart-References ermöglichen die Durchführung zusätzlicher Verwaltungsaufgaben, wenn auf das Objekt zugegriffen wird • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
7. Implementierung • Implementierung eines Cache Proxy in Java • Aufruf der Sinusfunktion über einen Cache Proxy • letzten zurückgegebenen Funktionswerte im Proxy speichern • Wenn Funktionswert schon im Cache Proxy • sofortige Rückgabe des Funktionswertes • Wenn Funktionswert nicht im Cache Proxy • Berechnung des Funktionswertes • Löschen eines alten Funktionswertes im Cache Proxy • Eintragen des neuen Funktionswertes in den Cache Proxy • Rückgabe des Funktionswertes an den Klienten • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
7. Implementierung • Darstellung als UML Klassen Diagramm • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster
8. Verwandte Muster • Adapter • bietet eine andere Schnittstelle zum Objekt, dass es anpasst der Proxy bietet im Gegensatz dazu dieselbe Schnittstelle wie sein Objekt (Subjekt) • Dekorierer • können eine ähnliche Implementierung wie Proxies haben, verfolgen aber anderen Zweck • Dekorierer erweitern ein Objekt um eine oder mehrere Zuständigkeiten, während ein Proxy den Zugriff auf das Objekt kontrolliert • Zweck • Motivation • Anwendbarkeit • Proxymuster und ihre Eigenschaften • Struktur • Schlussfolgerungen • Implementierung • Verwandte Muster