Java Reference
In-Depth Information
Beispiel für ein Dependency Look-Up mit Hilfe einer Registry
Im Folgenden wird die Technik Dependency Look-Up anhand eines Beispiels verdeut-
licht. Als Beispiel wird ein Plotter betrachtet, dessen Aufgabe es ist, eine Reihe von
Daten, die von einer Datenquelle erzeugt werden, aufzubereiten und grafisch darzu-
stellen. Die Klasse
Plotter
aggregiert das Interface
IDatenquelle
, welches auf
verschiedene Arten realisiert werden kann. In diesem Beispiel wird das Interface
IDatenquelle
von der Klasse
DatenquelleImpl
realisiert. Alle vorhandenen Rea-
lisierungen einer Datenquelle werden in einer Registratur verwaltet. Die Klasse
Plot-
ter
verwendet die Registratur, um eine konkrete Datenquelle auszuwählen, damit die
darin enthaltene Datenreihe dann dargestellt werden kann. Hier das Interface
IDa-
tenquelle
:
// Datei: IDatenquelle.java
import java.awt.Point;
import java.util.ArrayList;
public interface IDatenquelle
{
public ArrayList<Point> getDatenreihe();
}
In der Klasse
DatenquelleImpl
wird eine konkrete Datenreihe aus Zufallszahlen ge-
neriert:
// Datei: DatenquelleImpl.java
import java.awt.Point;
import java.util.ArrayList;
public class DatenquelleImpl implements IDatenquelle
{
public ArrayList<Point> getDatenreihe()
{
ArrayList<Point> datenreihe = new ArrayList<Point>();
int anzPunkte = (int)(Math.random()*30)+2;
int startPunkt = -1*(int)(Math.random()*30);
for (int x = startPunkt; x < anzPunkte; x++)
{
datenreihe.add(new Point(x,(int)(Math.random()*20)-
(int)(Math.random()*20)));
}
return datenreihe;
}
}
Die Klasse
Registratur
dient in diesem Beispiel der Verwaltung aller existierenden
Datenquellen. Bei der Klasse
Registratur
wurde das
Singleton-Muster
(siehe Ka-
pitel 4.20) eingesetzt, da von dieser Klasse nur ein einziges Objekt existieren darf. Die
Klasse
Registratur
kann nicht nur Datenquellen verwalten, sondern es können bei
ihr beliebige Objekte registriert werden. Nachfolgend der Quelltext der Klasse
Regis-
tratur
:
Search WWH ::
Custom Search