Überträgt man nun die Struktur des Pattern auf das Beispiel Cache Proxy, so übernimmt die Testklasse die Funktion des Klienten. Sie erzeugt
eine Instanz des GeneratorProxys und fragt darauf Werte ab, deren Sinuswerte
bestimmt werden sollen. Der GeneratorProxy wiederum beinhaltet eine Instanz
(genobj) vom tatsächlichen SinusGenerators. Wichtig sind hierbei noch die
Variablen (speicher) und (zugriff), die das Cachen ganz simpel demonstrieren
sollen. In (zugriff) wird jeweils der letzte angefragte Wert abgelegt, während
in (speicher) der generierte Sinuswert des angefragten Wertes abgelegt wird. Der
Proxy prüft also jedesmal, bevor er auf der Instanz des SinusGenerators den
Sinuswert berechnen lässt, ob der angefragte Wert nicht schon generiert
vorliegt. Ist dies der Fall, so liefert er ihn aus seinem Cache. Ansonsten wird
er vom SinusGenerator angefordert und im Cache abgelegt.
|
Abb. 2: Die Struktur des Beispiels
|
|