Grafische Benutzeroberflächen
Eine grafische Benutzeroberfläche oder auch GUI (Graphical User Interface) hat die Aufgabe, Programme mittels grafischer Bildschirmelemente bedienbar zu machen. So ermöglichen Controls wie Eingabefelder, Drucktasten und Ausgabefelder die Interaktion mit der Anwendung und Container die strukturierte Darstellung und Verwaltung anderer Bildschirmelemente. Dialoge wie Nachrichtendialoge und Dateiauswahl-Dialoge widerum stellen vordefinierte Oberflächen dar, mit deren Hilfe wiederkehrende Anwendungsfälle abgedeckt werden können.
Aufbau grafischer Benutzeroberflächen
Da es sich bei grafischen Benutzeroberflächen um komplexe Anwendungen handelt, werden diese in der Regel in verschiedene Bereiche wie Aufbau, Aussehen und Verhalten aufgeteilt (Separation of Concerns). Als Beispiel sei hier der Aufbau einer klassischen Webseite aufgeführt: HTML bestimmt den Aufbau, CSS das Aussehen und JavaScript das Verhalten der Webseite.
Das Entwurfmuster MVC (Model-View-Controller) stellt einen gängigen Ansatz zur Entwicklung von grafischen Benutzeroberflächen dar, bei dem die grafische Benutzeroberfläche in drei Bereiche unterteilt wird:
- Das Model ist für die Datenhaltung und -verwaltung zuständig
- Die View ist für die Darstellung der Oberfläche zuständig, welche wiederum in Aufbau und Aussehen unterteilt ist
- Der Controller übernimmt die Ereignisbehandlung und ermöglicht so die Benutzerinteraktion
Der Begriff MVC wird oft auch als Synonym für MVC-ähnliche Varianten wie z.B. MVP (Model-View-Presenter) oder MVVM (Model-View-ViewModel) verwendet.
Ereignisse (Events)
Ereignisse (Events) sind Nachrichten, die über das System weitergeleitet werden. Auf grafischen Benutzeroberflächen werden Ereignisse z.B. durch das Betätigen einer Drucktaste ausgelöst. Weitere typische Ergeignisse sind das Betätigen einer Maustaste, Tastatureingaben oder das Vergrößern bzw. Verkleinern eines Fensters.
Die Behandlung dieser Ereignisse wird durch das Delegationsmodell festgelegt:
- Empfänger können sich beim Sender für ein Ereignis registrieren
- Der Sender löst das Ereignis aus und übergibt das erzeugte Ereignis-Objekt an alle registrierten Empfänger
- Die Empfänger nehmen das Ereignis-Objekt entgegen und haben dadurch die Möglichkeit, auf das Ereignis zu reagieren
Die Empfänger werden je nach Bibliothek bzw. Framework als Handler oder Listener bezeichnet.