![]() |
|
Die JavaBeans-Architektur spezifiziert standardisierte Namenskonventionen, die, basierend auf der jeweiligen Funktion, zur Definition von Bean-Methoden verwendet werden. Die Verwendung dieser Namenskonventionen hat ferner den Vorteil, dass kein Zusatzaufwand zur Unterstützung des Introspektionskonzepts erforderlich ist. Namenskonventionen beziehen sich sowohl auf Eigenschaften, Events als auch auf Methoden. Eigenschaftsmuster (Property Design Patterns) Durch Eigenschaftsmuster werden die als public deklarierten Eigenschaften eines Beans festgelegt. Eigenschaftsmuster hängen eng mit Zugriffsmethoden zusammen. Anhand der Zugriffsmethoden (Setter- und Getter-Methoden) stellt die automatische Introspektion fest, welche Eigenschaften ein Bean offenlegt. Für jede als public deklarierte Lese- oder Schreibmethode wird unterstellt, dass die betroffene Eigenschaft als public deklariert ist. Eigenschaften müssen nicht immer die entsprechende Lese- und Schreibmethode beinhalten. Verfügt eine Eigenschaft nur über die Lesemethode, so wird daraus geschlossen, dass es sich hierbei um eine ausschließlich leseberechtigte Eigenschaft (Read-Only Property) handelt. Existiert andererseits nur eine Schreibmethode, so wird unterstellt, dass es sich um eine ausschließlich schreibberechtigte Eigenschaft (Write-Only Property) handelt. Eine Lese-Schreib-Eigenschaft (Read-Write Property) ist dadurch gekennzeichnet, dass sie sowohl das Lesen als auch das Schreiben ermöglichen. Die Eigenschaftsmuster variieren je nach Eigenschaftsart. In JavaBeans existieren folgende Eigenschaftsmuster:
public <propertyType> getTheProperty(); Für die Eigenschaft anzahlDerSchiffe vom Typ int werden dementsprechend folgende Zugriffsmethoden definiert:
// Getter-Methode // Setter-Methode
Wenn die automatische Introspektion von JavaBeans auf eine derartige Methodendefinition stößt, so lokalisiert sie sowohl die Eigenschaft anzahlDerSchiffe, als auch die Zugriffsmethoden getAnzahlDerSchiffe() und setAnzahlDerSchiffe(), die den Wert dieser Eigenschaft lesen bzw. setzen.
public boolean isTheProperty();
Der Unterschied zwischen diesem Muster und dem Muster einfacher Eigenschaften besteht darin, dass im Namen derartiger Eigenschaften das wort is anstelle des Worts get vorkommt. Existiert sowohl eine get-Methode als auch eine is-Methode für eine Eigenschaft, so verwendet die Introspektion die is-Methode.
public <PropertyElement> getTheProperty(int i); Die Zugriffsmethoden zum Lesen und Schreiben des Eigenschaften-Arrays als Ganzes sind:
public <PropertyElement>[] getTheProperty(); Das folgende Beispiel verdeutlicht die Verwendung dieser Syntax.
// Lesen bzw. Schreiben der Eigenschaft des i-ten Elements // Lesen bzw. Schreiben der Eigenschaften des gesammten Arrays Event-Muster Ändert sich der interne Zustand eines Beans, so ist es nötig, extern registrierte Komponenten über dieses Ereignis zu informieren. Beans können Nachrichten versenden, die andere Beans oder sonstige Komponenten über Änderungen benachrichtigen. Die Ereignisse (Events) werden an registrierte Event-Listener gesendet. Diese müssen ihre Anmeldung bzw. Abmeldung beim jeweiligen Bean selbst vornehmen. Zur Registrierung bietet die Beans-Technologie geeignete Methoden an, die zur Anmeldung und zur Abmeldung jeweils paarweise vorliegen. Ein Methodenpaar ist hierbei zur Registrierung einer Komponente ausreichend. Aus diesem Grund verwendet die Introspektion von JavaBeans diese Methoden auch dazu, um herauszufinden, welche Events ein Bean senden kann. Da zwei Arten von Events existieren, Unicast-Events und Multicast-Events (Kap. 9.3), sind entsprechend zwei Arten von Event-Mustern vorhanden:
public void remove<EventListenerType> (<EventListenerTyp> e);
Multicast-Events werden benötigt, wenn die Registrierung von mehr als einem EventListener-Objekt zulässig ist. Multicast-Events verwenden die folgende Syntax:
public void add<EventListenerType> (<EventListenerTyp> e); Methodenmuster Man kann auf jede JavaBeans-Methode zugreifen, wenn diese als public deklariert ist. Derartige Methoden haben allerdings weitreichendere Funktionen als bspw. nur das Lesen oder Schreiben einer Eigenschaft. Da die Namensgebung für die als public deklarierten Methoden den Beans-Entwicklern überlassen ist, gibt es keine spezifischen Methodenmuster. Als public deklarierte Methoden zeigen im Gegensatz zu den als public deklarierten Zugriffsmethoden der JavaBeans-Introspektion keine Eigenschaften von Beans an. |
|
|