15
-Laborpraktikum - Som m ersem ester 2005 „U m setzung von Pattern“ Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -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

Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

Embed Size (px)

Citation preview

Page 1: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 1 -

-LABORPRAKTIKUM-SOMMERSEMESTER 2005

„Umsetzung von Pattern“

Muster: Proxy

Gruppe: Lars WaldmannAnja Fiegler

Quelle:Gamma, E., Helm, R., Jonson, R., Vlissides, J.,„Entwurfsmuster“, Addison Wesley, Bonn, 1996

Page 2: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 2 -

Inhalt

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 3: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 3 -

1. Zweck

• Zugriffskontrolle auf ein Objekt, durch Vorlagerung eines Stellvertreterobjektes

• auch als Surrogate bezeichnet

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 4: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 4 -

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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 5: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 5 -

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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 6: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 6 -

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

• 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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 7: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 7 -

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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 8: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 8 -

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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 9: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 9 -

5. Struktur

• Struktur Proxymuster

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 10: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 10 -

5. Struktur

• Objektdiagramm einer Proxystruktur zur Laufzeit

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 11: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 11 -

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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 12: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 12 -

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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 13: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 13 -

7. Implementierung

• Darstellung als UML Klassen Diagramm

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 14: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 14 -

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

1. Zweck

2. Motivation

3. Anwendbarkeit

4. Proxymuster und ihre Eigenschaften

5. Struktur

6. Schlussfolgerungen

7. Implementierung

8. Verwandte Muster

Page 15: Lars Waldmann Anja Fiegler Fernstudium Informatik Matrikel 2000 - 1 - -LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Proxy Gruppe:

-Laborpraktikum-Sommersemester 2005

„Umsetzung vonPattern“

Lars Waldmann Anja Fiegler

Fernstudium Informatik Matrikel 2000

- 15 -

Fragen ?