Java Reference
In-Depth Information
4.3.3.4 Programmbeispiel
Als Beispiel soll eine kleine Anwendung dienen, die Personendaten aus einer CSV-
Datei 45 ausliest. Das Einlesen von CSV-Dateien aus einer Datei in einen Zwischen-
puffer sei in diesem Beispiel schon von einer Klasse implementiert worden, die vor
längerer Zeit geschrieben wurde und deshalb nicht auf die Architektur der Anwendung,
d. h. auf die Aufrufschnittstelle des Clients, abgestimmt ist. Um die Klasse zur Anwen-
dung kompatibel zu machen, wird eine Adapter-Klasse eingesetzt. Hierbei stellt die
Klasse CSVLeser die zu adaptierende Klasse dar, die Klasse CSVLeserAdapter
den Adapter und die Klasse TestAdapter den Client. Die Klasse CSVLeserAdap-
ter muss das Interface IPersonenLeser implementieren.
Zur Speicherung von Vor- und Nachname dient die Klasse Person . Die Klasse Per-
son ist sozusagen eine Hilfsklasse und spielt im Adapter-Muster selbst keine Rolle.
Hier die Klasse Person :
// Datei: Person.java
public class Person
{
private String nachname;
private String vorname;
public Person (String nachname, String vorname)
{
this.nachname = nachname;
this.vorname = vorname;
}
public void print()
{
System.out.println (vorname + " " + nachname);
}
}
Die Klasse CSVLeser stellt eine vor längerer Zeit implementierte Klasse dar, also die
zu adaptierende Klasse, die eine CSV-Datei mit Personendaten aus einer Datei in
einen Zwischenpuffer einliest. Im Gegensatz zum Interface IPersonenLeser hat die
Methode zum Einlesen der Personen einen anderen Namen und gibt kein Array vom
Typ Vector mit Personen zurück, sondern ein Array vom Typ Vector , der ein
String -Array mit den Vor- und Nachnamen enthält. Da diese Implementierung nicht
kompatibel zum Interface IPersonenLeser ist, muss sie adaptiert werden. Hier die
Klasse CSVLeser :
// Datei: CSVLeser.java
import java.io.*;
import java.util.Vector;
45 CSV steht für Comma-Separated Values, d. h. Trennung von Spaltenwerten durch Kommata. In der
Praxis werden alle Dateien, in denen die Spalten durch ein Trennzeichen separiert gespeichert sind,
als CSV-Dateien bezeichnet. Das Trennzeichen muss also nicht unbedingt ein Komma sein.
Search WWH ::




Custom Search