Java Reference
In-Depth Information
4.8.3.4 Programmbeispiel
Das Proxy-Muster soll an einem Beispiel zum Zugriff auf eine Datei vorgestellt werden.
Das Interface IDateiZugriff definiert zwei Methoden getName() und get-
Inhalt() zur Ausgabe des Dateinamens und des Inhalts der Datei. Um das Pro-
gramm möglichst einfach zu halten, beschränkt sich der Dateizugriff auf eine simulierte
Leseoperation. Hier das Interface IDateiZugriff :
// Datei: IDateiZugriff.java
public interface IDateiZugriff
{
public String getName();
public String getInhalt();
}
Die echte Klasse DateiZugriff implementiert dieses Interface, wobei die Leseope-
ration getInhalt() der Einfachheit halber in diesem Programm nur simuliert wird.
Hier die Klasse DateiZugriff :
// Datei: DateiZugriff.java
public class DateiZugriff implements IDateiZugriff
{
String name;
public DateiZugriff (String name)
{
this.name = name;
System.out.println ("Echtes Objekt instanziiert.");
}
public String getName()
{
return this.name;
}
public String getInhalt()
{
//Simulation einer Datei-Leseoperation
return ("Daten von " + name);
}
}
Ein Proxy speichert den Namen seiner zugehörigen Datei. Solange ein Client nur die
Methode getName() aufruft, ist es nicht nötig, die Datei zu öffnen und den Inhalt zu
laden. Erst wenn ein Client über getInhalt() den Inhalt der Datei lesen will, muss
die relativ teure Operation über den Zugriff auf das echte Objekt ausgeführt werden.
Dazu wird in diesem Fall das Originalobjekt erzeugt, das neben dem Namen auch den
Inhalt kennt. Die Proxy-Klasse ProxyDateiZugriff sieht dann wie folgt aus:
// Datei: ProxyDateiZugriff.java
public class ProxyDateiZugriff implements IDateiZugriff
{
String name;
IDateiZugriff realeDatei;
Search WWH ::




Custom Search