Java Reference
In-Depth Information
4.8 Das Strukturmuster Proxy
4.8.1 Name/Alternative Namen
Stellvertreter (engl. proxy), Proxy, Surrogat 49 (engl. surrogate).
4.8.2 Problem
Ein Client-Programm soll nur indirekt über ein Stellvertreter-Objekt (Proxy-Objekt) auf
ein bestimmtes echtes Objekt einer Anwendung zugreifen können. Das Stellvertreter-
Objekt soll den Zugang zum echten Objekt vermitteln und soll ggf. eine zusätzliche
Funktionalität vor dem echten Objekt einschieben können.
Das Proxy-Muster soll die Existenz eines echten Objekts hinter
einem Stellvertreter mit demselben Interface verbergen. Der Stell-
vertreter soll die Kommunikation zum echten Objekt kapseln. Er
soll den Aufruf einer Methode an das echte Objekt weiter delegie-
ren und soll dabei ggf. eine Zusatzfunktionalität einschieben kön-
nen.
4.8.3 Lösung
Ein Stellvertreter-Objekt (Proxy-Objekt oder kurz Proxy) erhält das Interface des
echten Objekts. Der Zugang zum echten Objekt selbst erfolgt über den Proxy. Das
Client-Programm greift dann direkt auf den entsprechenden Proxy als Stellvertreter
des echten Objekts zu und der Proxy anschließend auf das echte Objekt. Das Client-
Programm kennt nur den Proxy. Das echte Objekt ist dem Client verborgen. Der Zu-
gang zum echten Objekt kann mit Aufwand verbunden sein, z. B. weil das echte Ob-
jekt nur über das Netzwerk erreichbar ist. Die gesamte Kommunikation des Proxys mit
dem echten Objekt wird im Stellvertreter-Objekt gekapselt.
Das Proxy-Muster ist ein objektbasiertes Entwurfsmuster, bei
dem das Proxy-Objekt den Zugriff auf das echte Objekt kontrol-
liert.
Der Proxy kann als zusätzliche Funktionen (siehe Kapitel 4.8.5) beispielsweise Sicher-
heitsfunktionen oder Protokollierfunktionen implementieren, die im ursprünglichen
echten Objekt gar nicht vorhanden sind.
Durch das Muster wird nicht festgelegt, wie das Proxy-Objekt Kenntnis vom echten
Objekt erlangt. Beispielsweise kann das Proxy-Objekt zur Laufzeit das echte Objekt
bei Bedarf erzeugen.
49 Surrogat bedeutet Ersatz.
Search WWH ::




Custom Search