Java Reference
In-Depth Information
private byte[] verpacken (String methode, Tag tag)
{
String meinName = "ClientsideWetterDienstProxy";
String anfrage = meinName + ";" + methode + ";"
+ tag.toString();
return anfrage.getBytes();
}
// Packe die Antwortnachricht aus dem Byte-Array aus:
// liefere das Ergebnis des Dienstaufrufs als String zurueck.
private String auspacken (byte[] nachricht)
{
String[] strings = (new String (nachricht)).split (";");
return strings[1];
}
}
Die Klasse Client enthält die eigentliche Anwendungslogik in der Methode drucke-
Wetterdaten() . Damit die Klasse Client mit lokalen wie mit entfernten Wetter-
servern arbeiten kann, werden als Typ für die Referenzen auf die Server nur Interfaces
- nämlich IWetterDienst und ITemperaturDienst - benutzt. Diese Referenzen
können von außen durch Aufruf der Methode injectServices() gesetzt werden. Im
Beispiel erfolgt das Setzen der Referenzen im Hauptprogramm der Klasse TestBro-
ker . Es folgt der Quellcode der Klasse Client :
// Datei: Client.java
public class Client
{
// Diese Referenzen koennen sowohl auf echte Server-Objekte
// zeigen, aber auch auf Client-side Proxys
IWetterDienst wetterServer;
ITemperaturDienst temperaturServer;
public void injectServices (IWetterDienst wds,
ITemperaturDienst tds)
{
wetterServer = wds;
temperaturServer = tds;
}
// Diese Methode stellt die eigentliche Client-Anwendung dar.
// Es werden Wetter- und Temperaturdaten von den Servern
// abgefragt und ausgegeben.
public void druckeWetterdaten()
{
// Wetter und Temperatur fuer heute anfordern
System.out.println();
System.out.println ("Client: " +
"Wetter und Temperatur fuer heute anfragen:");
String wetterHeute =
wetterServer.erfrageWetter (Tag.Heute);
Float temperaturHeute =
temperaturServer.erfrageTemperatur (Tag.Heute);
System.out.println ("Heute gibt es " + wetterHeute
+ " bei " + temperaturHeute + " Grad.");
Search WWH ::




Custom Search