zu www.bildungsgueter.de zur Inhaltsübersicht des Kapitels

Vorlage für ein Programm mit Trennung von Datenmodell und Ansicht


Einführung

....

Klasse der Applikation

Eine von Application abgeleitete Klasse stellt den Startpunkt des Programms bereit. Die abgeleitete Klasse muss die Methode start definieren, deren Parameter die Verbindung zur grafischen Oberfläche herstellt.

In der einzigen Instanz von Application werden das Applikationsmodell und die View bereitgestellt. Die View wird in eine Scene eingebettet und in die stage eingefügt.

package main;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;

/**
 * Die Klasse 
 * Die Eigenschaften der Darstellungselemente werden aus dem Datenmodell bezogen.
 * @author 
 */
public class Program extends Application {
    
    private final ApplicationModel model;
    private final View view;
    
    public Program () {
        model = new ApplicationModel();
        view = new View(model);
    }
    @Override
    public void start(Stage primaryStage) {
        Scene scene = new Scene(view);
        primaryStage.setTitle("Application");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Klasse View

Die Ansicht wird von einem Darstellungselement abgeleitet, das seinerseits Darstellungselemente enthalten kann. In der Ansicht werden die für das Programm benötigten Anzeige- und Bedienelemente bereitgestellt und sichtbar gemacht.

Eine View kann von jeder der folgenden Klassen abgeleitet werden:

Eine View sollte einen ständigen Verweis auf ihr Modell haben. Die Eigenschaften der Komponenten einer View werden in der Regel mit Eigenschaften verbunden, die im Modell bereitgestellt werden.

package main;

import javafx.scene.layout.GridPane;

/**
 *
 * @author 
 */
public class View extends GridPane {
    
    private final ApplicationModel model;
            
    public View(ApplicationModel m) {
        model = m;
        this.setupWindow();
    }

    private setupWindow() {
        // Erzeugung der Darstellungselemente des Fensters.
        // Die Darstellungselemente werden in  this  eingefügt.
    }
}

Klasse ApplicationModel

...

package main;

/**
 * In der Klasse sind die Eigenschaften der Darstellungselemente der Ansicht
 * vereinbart. Die Klasse stellt Methoden für den Zugriff auf diese
 * Eigenschaften zur Verfügung.
 * @author
 */
public class ApplicationModel {
    
    public ApplicationModel() {
        
    }
}

Regeln für den Entwurf eines Programms mit Trennung von Datenmodell und Ansicht.


zur Inhaltsübersicht des Kapitels