Java Reference
In-Depth Information
Bild 10.8 Änderungsfunktionen der Zählersicht mit zusätzlichen Parametern
1 0 .6 Klassenladen bei Bedarf
Wenn wir der Klasse CounterView (s. Listing 10.2) einen parameterlosen Konstruktor mit
einer Ausgabe hinzufügen, dann sehen wir diese Ausgabe nur dann direkt beim Starten von
Eclipse, wenn die CounterView von Anfang an sichtbar ist. Wenn dagegen die View geschlos-
sen und anschließend Eclipse neu gestartet wird, dann hat sich Eclipse gemerkt, dass die
View nicht geöff net war und öff net sie auch beim Neustart nicht. Entsprechend sehen wir
die Ausgabe des CounterView-Konstruktors nicht. Das bedeutet, dass das Plugin, welches
für alle Views in Eclipse verantwortlich ist (in Bild 10.7 ganz unten zu sehen), das Laden der
Klasse CounterView und die Instanziierung eines Objekts so lange verzögert, bis die View
tatsächlich mit Hilfe des Dialogs aus Bild 10.6 geöff net wird; dann erst sehen wir die Aus-
gabe des Konstruktors. Man nennt dieses Verhalten „Lazy Extension Processing“. Die Faul-
heit verhindert in diesem Fall das unnötige Laden von Klassen. Auch wenn man seiner
Eclipse-Installation nur die Plugins hinzugefügt hat, die man zumindest ab und zu einmal
benötigt, hat eine Eclipse-Installation in der Regel deutlich mehr Plugins als man in einer
Sitzung benutzt. Wenn die Klassen aller Plugins bei jedem Starten von Eclipse geladen
würden, dann wäre das ein riesiger und zum großen Teil unnötiger Aufwand. Auß erdem
kann man sich vorstellen, dass bei einem großen Plugin zur Initialisierung nicht nur eine
Klasse geladen wird, denn in der Initialisierungsmethode werden in der Regel weitere Klas-
sen verwendet, die dann eventuell wieder weitere Klassen benutzen usw., so dass das Laden
einer Klasse, die Erzeugung eines Objekts davon und der eventuelle Aufruf von speziellen
Initialisierungsmethoden dazu führen kann, dass sehr viele Klassen geladen werden müs-
sen. Wenn diese Klassen benötigt werden, ist das Laden unvermeidbar. Wenn aber diese
Klassen alle unnötig geladen werden, dann ist es ärgerlich. Die Eclipse-Plugins sind in der
Regel so programmiert, dass unnötiges Klassenladen vermieden wird, wie das eingangs
 
Search WWH ::




Custom Search