Die Software-Komponenten-Technologie ist ein weiterer Fortschritt bei der Software-Entwicklung, denn sie stellt Softwarefunktionen als einzelne Komponenten bereit, die zu einer Anwendung zusammengefügt werden können. Echte Komponenten sind unabhängig von der verwendeten Programmiersprache und können mithilfe von Anwendungs-Entwicklungs-Tools bearbeitet werden.
In Java kann man solche Komponenten einfach mithilfe der JavaBean-Technologie entwickeln, die darüber hinaus auch noch die Vorteile der Programmiersprache Java mitbringen, nämlich Benutzerfreundlichkeit und Plattform-Unabhängigkeit. Hier ein kurzer Überblick über diese Technologie sowie eine Anleitung, wie man eine einfache JavaBean erstellt.
Wie JavaBeans funktionieren
Die JavaBean-Technologie ermöglicht die Entwicklung Plattform-unabhängiger Software-Komponenten mithilfe der Programmiersprache Java. Eine Bean (die JavaBean-Terminologie für eine Komponente) ist eine reguläre Java-Klasse und kann als solche programmiertechnisch wie jede andere Klasse verwendet werden.
Um allerdings als Bean gelten zu können, muss eine Klasse einer Reihe von Konventionen und Richtlinien folgen, damit sie mit grafischen Entwickler-Tools bearbeitet werden kann. Normalerweise sind Beans grafische Komponenten, die von der Klasse java.awt.Component oder einer ihrer Subklassen abgeleitet wurden, aber zwingend erforderlich ist dies nicht.
Eine Bean zu schreiben, ist recht einfach. Es ist nicht notwendig, eine Subklasse von einer bestimmten Klasse zu bilden oder ein bestimmtes Interface zu implementieren. Beans werden durch eine Reihe von Features definiert, die entsprechend festgelegter Konventionen bereitgestellt werden. Diese Features fallen unter drei Kategorien:
Eigenschaften
Eigenschaften sind benannte Attribute, die gelesen und/oder geschrieben werden können. Eigenschaften sind über bestimmte Zugriffsmethoden zugänglich, mit denen ihre Werte gelesen oder gesetzt werden können. Die Methode zum Setzen des Wertes einer Eigenschaft muss die folgende Signatur besitzen, wobei der Typ der Eigenschaft ist und deren Name:
Entsprechend muss die Methode zum Lesen des Wertes der Eigenschaft lauten:
Falls der Eigenschafts-Typ boolesch ist, muss die Signatur wie folgt lauten:
Angenommen, eine Bean stellt eine Eigenschaft namens count vom Typ int zur Verfügung, so würden die entsprechenden Methoden zum Zugriff auf ihren Wert so lauten:
Zusätzlich zu Eigenschaften können JavaBeans auch mit Ereignissen benutzt werden.
Ereignisse
So wie AWT- und Swing-Komponenten muss auch eine Bean ein Ereignis auslösen, um interessierte andere Komponenten darüber zu informieren, dass etwas passiert ist. Die Implementierung von Ereignissen ist etwas aufwendiger als die von Eigenschaften.
Zuerst muss man eine Klase definieren, die von der Klasse java.util.EventObject abgeleitet ist, um die Informationen über das Ereignis zu kapseln. Nach der Konvention sollte der Name der Klasse Event lauten, wobei der Name des Ereignisses ist.
Als nächstes wird ein Interface definiert. Dieses wird von der Klasse java.util.EventListener abgeleitet, die von anderen Komponenten implementiert wird, die über das Ereignis informiert werden wollen. Nach der Konvention sollte das Interface den Namen Listener haben. Das Interface muss eine Methode definieren, die ein einzelnes Argument vom Type Event für jeden Typ von Benachrichtigung erhält.
Und schließlich muss die Bean zwei Methoden bereitstellen, von denen die eine einem Objekt ermöglicht, sich selbst bei der Bean zu registrieren, um Benachrichtigungen zu erhalten:
Die andere Methode dient dazu, sich wieder abzumelden:
Es liegt in der Verantwortung der Bean, eine Liste mit allen interessierten Objekten (Listener) zu pflegen. Nach der JavaBean-Spezifikation sollte aller Code, der auf die Liste der Listener zugreift, synchronisiert sein, damit es durch Multi-Thread-Anwendungen nicht zu Streitereien um die Rangfolge kommt. Daher das Attribut synchronized in der Definition der Methode.
Page: 1 2
Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.
In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…
Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.
Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…
DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.
Betroffen sind Windows und Windows Server. Microsoft patcht aber auch Schwachstellen in Excel, Word und…