Java Reference
In-Depth Information
if(!(callback instanceof Function))
{
throw new Exception(classAttribute + " does not " +
"implement Function");
}
realFunction = (Function) callback;
}
}
Die private Methode getRealFunction enthält im Wesentlichen Code aus der Methode
process der Klasse CounterView. Wir müssen dafür den Teil zwischen den Kommentaren
„//Markierung Nr. 1“ und „//Markierung Nr. 2“ in der Methode process der Klasse Counter-
View (s. Listing 10.2) ersetzen durch die folgende Zeile:
Function function = new FunctionProxy(member, CLASS_ATTRIBUTE);
Statt der Erzeugung des Objekts der Funktionsklasse wird nur ein FunctionProxy-Objekt
erzeugt, dem durch die im Konstruktor übergebenen Parameter ermöglicht wird, das Funk-
tionsobjekt später erzeugen zu können. Dies passiert erst dann, wenn eine Benutzerin auf
den entsprechenden Button klickt und das Funktionsobjekt dadurch tatsächlich benötigt
wird.
1 0 7 Bewertung
Da jedes Eclipse-Plugin ein OSGi-Bundle ist und OSGi im vorhergehenden Kapitel schon als
perfektes Komponentensystem bewertet wurde, kann auch Eclipse zweifellos als Kompo-
nentensystem gelten. Durch das Konzept der Erweiterungspunkte erfolgt wie bei den Decla-
rative Services die Kopplung von Eclipse-Plugins in deklarativer Weise; durch die Erweite-
rungspunkte wird explizit deklariert, was ein Plugin liefert und was ein Plugin erwartet.
Wie wir in den Beispielen dieses Kapitels gesehen haben, erfolgt aber die Kopplung nicht
rein deklarativ, sondern muss in der Regel zusätzlich durch Programmcode unterstützt wer-
den. Dennoch stellt der Mechanismus der Erweiterungspunkte durch die Angabe von XML-
Schema-Dateien nach meiner Einschätzung ein sehr fl exibles und elegantes Kopplungskon-
zept dar, das Eclipse gegenüber OSGi als Komponentensystem noch aufwertet. Ich habe also
keinerlei Kritikpunkte an Eclipse bezüglich der Erfüllung der Eigenscha en, die ein Kom-
ponentensystem haben sollte. Allerdings erschwert die Plattform SWT und JFace als Basis
für die Programmierung grafi scher Benutzeroberfl ächen einen schnellen und problemlosen
Einstieg in die Eclipse-Plugin-Entwicklung, denn die allermeisten Java-Entwickler lernen in
ihrer Ausbildung zwar Swing, nicht aber SWT und JFace.
 
Search WWH ::




Custom Search