Proxy
Proxy Pattern
Das "proxy pattern" (Stellvertreter) ist aus der Kategorie der Strukturmuster und überträgt die Steuerung eines Objektes auf ein vorgelagertes Stellvertreterobjekt. Das Proxy Pattern bietet also die Kontrolle über die Objekterzeugung des Subjekts und dessen Zugriff darauf. Des Weiteren hat das Proxy Pattern den Vorteil, dass der Client nicht die Kontrolle des Objekts bemerkt und das es auch für Lazy-Loading genutzt werden kann (das eigentliche Objekt ist noch nicht im Speicher verfügbar).
Quelle: Wikipedia
Klient: Der Klient stellt das Objekt dar, welches durch den Stellvertreter auf das reale Subjekt zugreift.
Proxy: Der Stellvertreter bietet nach außen hin eine zum realen Subjekt identische Schnittstelle.
Subjekt: Das Subjekt definiert die gemeinsame Schnittstelle von Stellvertreter und realem Subjekt.
RealesSubjekt: Das reale Subjekt ist das durch den Stellvertreter repräsentierte Objekt.
Verwendung und Beispiel
Proxies können den Zugang zu Objekten kontrollieren, bevor sie die Methodenaufrufe an das Subjekt delegieren.
Das Prinzip findet man auch in der realen Welt. Wenn beim Einkaufen auf Bargeld verzichtet und eher eine Kreditkarte oder ähnliches verwendet wird, dann ist das ein Proxy! Der Verkäufer bekommt sein Geld allerdings keinen direkten Zugriff auf das eigene Konto.
Nachteile
- Je nach Implementierung kann sich die Antwortzeit verzögern.
- Es wird eine weitere Abstraktionsschicht eingefügt was zur Steigerung der Komplexität führen kann.
- Es müssen alle von der Schnittstelle definierten Methoden für das Proxy erstellt und an das Subjekt delegiert werden.
Abgrenzungen zu anderen Pattern
Dekorierer-Pattern: Ähnlich ABER es fügt zusätzliches Verhalten hinzu!
Adapter-Pattern: Verändert die Schnittstellendefinition, aber nicht die Geschäftslogik.
Facaden-Pattern: Kontrolliert nicht den Zugriff auf das Objekt, sondern stellt eine andere Schnittstelle bereit.
Standort Hannover
newcubator GmbH
Bödekerstraße 22
30161 Hannover
Standort Dortmund
newcubator GmbH
Westenhellweg 85-89
44137 Dortmund