Java Reference
In-Depth Information
Schließlich soll noch die parameterlose Methode m3 aufgerufen werden und anschließend
nochmals die Methode m mit String-Parameter:
bus.sendForNothing();
bus.sendForNothing("servus");
Überraschenderweise springt der Wert des Zählers von der ersten zur zweiten Ausgabe
nicht um 1 wie bei allen vorigen Ausgaben, sondern um 2. Der Grund ist darin zu sehen,
dass durch den ersten Aufruf alle parameterlosen Methoden aktiviert werden. Auß er der
Methode m3 der Klasse SomeClass ist dies auch noch die Methode increment der Klasse
Counter. In m3 wird dann increment nochmals aufgerufen. Dies erklärt, warum im folgen-
den Aufruf der Wert des Zählers um 2 gestiegen ist. Dieses Beispiel sollte eine Warnung
sein: Auch wenn die Aktivierung von Methoden über den Request-Response-Bus bequem
ist, kann es doch passieren, dass ungewollt zusätzliche Methoden auf Objekten aufgerufen
werden. Man sollte also darauf achten, dass die Methoden, die angesprochen werden sollen,
möglichst genau spezifi ziert werden, was allerdings den Programmieraufwand wieder
etwas erhöht.
155 Bewertung
RRiBbit hat bezüglich der Bewertung als Komponenten-Framework viele Ähnlichkeiten mit
Spring. Wie bei Spring ist eine RRiBbit-Komponente eine Klasse oder ein Objekt; beides
kann ja zur Erzeugung eines ListenerObjectCreators angegeben werden. Die von Spring
durchgeführte Vernetzung der Komponenten durch Dependency Injection wird bei RRiBbit
durch das Vorhandenseins und die Nutzung des Request-Response-Bus durch die Kompo-
nenten ersetzt. Der Bus bildet zusammen mit dem ListenerObjectCreator das Komponenten-
Framework. Wir betrachten die Merkmale E1 bis E4 im Einzelnen:
! Zu E1: Eine RRiBbit-Komponente ist eine Klasse oder ein Objekt einer Klasse, die mit
@Listener annotierte Methoden besitzt und in der der Request-Response-Bus benutzt
wird. Zu Beginn werden Objekte oder Klassen als Komponenten bei der Erzeugung des
ListenerObjectCreators angegeben.
! Zu E2: Die Kopplung der RRiBbit-Komponenten erfolgt durch den Request-Response-Bus,
welcher den Kern des Frameworks darstellt.
! Zu E3: Als „Einstiegsklassen“ kann man die Klassen sehen, die bei der Erzeugung des
ListenerObjectCreators angegeben werden. Das Framework erzeugt dann die entspre-
chenden Objekte. Alternativ können auch Objekte von der Anwendung erzeugt und an
den Konstruktor eines ListenerObjectCreators übergeben werden. Ein Lebenszyklus wird
nicht implementiert. Das RRiBbit-Framework bietet auer dem Request-Response-Bus
wenige weitere Funktionen an.
! Zu E4: Bei RRiBbit wird nicht explizit spezifi ziert, was eine Komponente benötigt und
bereitstellt.
RRiBbit erfüllt die charakteristischen Merkmale eines Komponenten-Frameworks gerade
noch. Man könnte aber RRiBbit so erweitern, dass es dem Ideal eines Komponenten-Frame-
 
Search WWH ::




Custom Search