Java Reference
In-Depth Information
x Counting-Proxy
Der Counting-Proxy ist ein Objekt, das eingeführt wird, um die Aktivitäten zwischen
dem Client-Programm und den anderen Objekten einer Anwendung zu protokol-
lieren. Diese Proxy-Variante findet vor allem bei der Erstellung von Statistiken Ver-
wendung.
x Cache-Proxy
Der Cache-Proxy puffert Daten zwischen, so dass die Daten nicht bei jedem Aufruf
von einem entfernten Rechner geladen werden müssen. Diese Proxy-Variante wird
bei Browsern eingesetzt, um Webseiten zwischenzuspeichern. Ein Cache-Proxy hat
oft viele Clients und kann deshalb vorausschauende Algorithmen effizienter als
seine Clients nutzen, da er besseres Material für die Statistik und damit für die
Anforderungsrate der zu cachenden Daten hat.
Das Proxy-Muster kann auch beim Testen 50 von Software eingesetzt werden. Die
Stellvertreter-Objekte werden dann als Mock 51 -Objekte bezeichnet. Sie dienen dazu,
eine noch nicht oder nicht vollständig vorhandene Umgebung für eine zu testende
Komponente zu simulieren. Die Stellvertreter-Objekte verhalten sich, wie es von den
eigentlichen Umgebungs-Objekten später im Gesamtsystem erwartet wird, liefern aber
beispielsweise nur hart codierte, aber sinnvolle Ergebnisse zurück. Die Anwendung
des Proxy-Musters geschieht hier außerhalb der Entwurfsphase.
4.8.6 Ähnliche Entwurfsmuster
Mit dem Proxy-, dem Dekorierer- und dem Adapter-Muster können Objekte um eine
zusätzliche Funktionalität erweitert werden. Jedes dieser Muster führt ein neues Objekt
ein 52 , das zwischen der Anwendung und dem eigentlichen Objekt steht und das eine
Referenz auf das eigentliche Objekt enthält. Über diese Referenz kann das neue Ob-
jekt Anfragen und Befehle an das eigentliche Objekt delegieren. Vor oder nach bzw.
vor und nach einer Delegation kann eine Zusatzfunktionalität eingefügt werden.
Der Proxy verwendet dieselbe Schnittstelle wie das eigentliche Objekt. Für den Adap-
ter gilt diese Einschränkung nicht, dass die Schnittstelle gleich bleiben muss. Ganz im
Gegenteil! Ein Adapter passt die vorhandene Schnittstelle des eigentlichen Objekts an
die von der Anwendung gewünschte Schnittstelle an.
Die Aufgabe eines Dekorierers ist das dynamische Hinzufügen von neuer Funktionali-
tät zu einem Objekt. Diese Aufgabe kann zwar prinzipiell auch ein Proxy erledigen.
Aber bei einem Proxy steht eher eine andere Aufgabe - eine Art "Türsteher"-Funktion
- im Vordergrund: ein Proxy ermöglicht oder verhindert den Zugriff auf die Funktionali-
tät des eigentlichen Objekts. Beim Proxy-Muster geht man in der Regel davon aus,
dass das eigentliche Objekt schon die richtige Funktionalität besitzt, beim Dekorierer-
Muster soll die Funktionalität des eigentlichen Objekts dynamisch durch ein Dekorie-
rer-Objekt erweitert werden.
50 Für Muster, die in der Testphase angewendet werden können, hat sich der Begriff Test Pattern etab-
liert, zu denen beispielsweise das Mock Object Pattern [Mes07] gezählt wird.
51 to mock (engl.) bedeutet nachahmen.
52 Beim Adapter-Muster wird hier die objektbasierte Variante betrachtet.
Search WWH ::




Custom Search