Model-View-Controller in Java

Inhaltsangabe

  1. MVC- Model-View-Controller
    1. Architekturmuster
    2. MVC-Modell
    3. Beispiel
    4. Komponenten
      1. Model
      2. View
      3. Controller
    5. Vor- und Nachteile
    6. Fazit
  2. GUI-Umsetzung
    1. Aufbau eines GUI
    2. Prinzip
  3. Beispiele:
    1. Beispiel: "Hallo Welt!"
    2. Beispiel: "Mehrwertsteuer"

Model-View-Controller

  • Architekturmuster
    •   Aufteilung von Softwaresystemen in drei Einheiten
  • Ziel: flexibles Programmdesign
    • spätere Änderung oder Erweiterung einfach zu realisieren
    • Wiederverwendbarkeit der einzelnen Komponenten ermöglichen
  • bei großen Anwendungen
    • Übersicht und Ordnung durch Reduzierung der Komplexität

Architekturmuster

  • 3 Komponenten
    • Abhängigkeit unterschiedlich, je nach Realisierung
  • Dabei:  Trennung der Datenhaltung von Datendarstellung

MVC-Modell

  • Model
    • Hält Daten einer Anwendung
  • View 
    • für graphische Repräsentation der Daten
  • Controller
    • übersetzt Benutzereingaben im View -> ändert Zustand des Models
  • MVC-Modell

    MVC-Beispiel

    MVC-Beispiel

    Model

    • wird zuerst implementiert
    •  enthält Daten und Kernfunktionalität der Anwendung
    •  ist unabhängig vom View und Controller
    • zusätzliche Aufgaben:
    • Das Model kennt alle View und Controller
    • informiert diese über Änderung

    View

    • präsentieren dem Anwender Informationen
    --> stellt  Daten des Models am Bildschirm dar
    • Reaktion auf Änderungen im Model
    • Bei Initialisierung werden alle Views mit
      Model assoziiert (Beziehung hergestellt)
    • Erzeugung Controller-Komponente (1:1-Beziehung)

    Controller

    • Eingabeschnittstelle zwischen Benutzer und Model
    • interpretiert die empfangenen Eingabedaten und übergibt sie dem Model
    • meist auf ein spezielles View zugeschnitten
    • Oft fasst man View und Controller zusammen zu einer Klasse        

    Vor- und Nachteile

    Vorteile Nachteile
    • Präsentation des Datenmodells in mehren Ansichten möglich
    • alle Ansichten die sich auf ein Modell beziehen werden automatisch synchronisiert
    • Bedienelemente können beliebig vertauscht werden
    • Leicht neue View  in vorhandenes Model zu implementieren
    • -->System beliebig skalierbar
    • Komplexität erhöht sich bei mehreren Views
    • -->Fehler können schwerer gefunden werden
    • starke Koppelung zwischen Model-View sowie Modell-Controller

    Fazit

    • leistungsstarkes Instrument zur Implementierung von Benutzeroberflächen
    • vielfache Anwendbarkeit
    • ABER:
      • Muss vorher prüfen ob MVC dazu geeignet ist oder nicht
      • Implementierung kann sehr komplex werden
     

    GUI-Umsetzung

    GUI

    =  Graphical User Interface
    •  Programme ereignisgesteuert
    • Aktionen des Benutzers erzeugen Ereignisse
    1. (Tastaturanschläge, Mausklicks, Mausbewegungen etc.)
    • Problem:
    1. GUI kann nicht vorhersehen, was Benutzer tun wird.
    • Folge:
    1. GUI wartet auf Aktionen des Benutzers
    • Komponenten erzeugen Ereignisse
    • (Maus, Tastatur,...)
    • Muss vorher prüfen ob MVC dazu geeignet ist oder nicht
    • Implementierung kann sehr komplex werden

    Aufbau eines GUI

    Fenster  - Frame
    Fenster-Frame
    Untergrund auf den man etwas
    platzieren kann – Panel
    Panel-Untergrund
    Diverse Dinge wie Buttons, Textfelder,.....
    welche auf dem Panel plaziert werden
    Buttons-Textfelder

    Prinzip

    1. zuerst Frame erstellen
    2. Panel erstellen
    3. diverse Buttons usw. auf Panel legen bzw. neue Panels darauf legen
    4. Panel auf Frame legen
    5. Frame anzeigen

    Beispiele

    Beispiel: "Hallo Welt"
    Beispiel: "Mehrwertssteuer"  

    Datein

    Die dazugehörige Powerpoint-Präsentation (In der Powerpoint 2007 und 98-2003 Version) schicke ich auf Anfrage per Email.


    © Artur Leinweber 2009