Aktualisieren von mehreren Views

Dit_

Bekanntes Mitglied
Hallo,

follgendes Problem

Ich muss von einem Server, der die DAX-Aktienkurse zur Verfügung stellt,alle 2 Minuten die Daten abrufen.

Ich habe eine Klasse Updater die mir die Daten alle 2 Minuten bereitstellt.
Jetzt habe ich das Problem, dass viele Views von den Daten abhaengig sind.

Views sind : MenuBar, StatusPanel (mit Infos über DAX) und Tabelle mit AktienKursen. Es gibt noch viel mehr (ToolBar, Hilfsfenster die nicht immer geöffnet sind, brauchen aber beim Aufruf aktuelle Daten usw...), aber einfachheitshalber betrachte ich nur die drei.

Die Frage ist wie aktualisiere ich die Views am besten.

Bis jetzt habe ich das so gemacht.

  1. Alle Views implementieren Schnittstelle Updatable, somit haben alle Views eine Methode update().
  2. Es gibt eine Klasse UpdateSet

    Hier ist die vereinfachte Version.

    Java:
    public class UpdateSet {
    
    	private static DAXData data;
    	
    	//Fields for MenuBar
    	//menu bar braucht zB keine DAX Daten,
    	//nur einen booleschen Wert der Parser aus den Daten rausfiltert.
    	public static boolean foo_menuBar;
    	
    	//field for StatusPanel
    	public static boolean foo_status;
    	
    	//usw...
    	
    	/**
    	 * @return the data
    	 */
    	public static DAXData getData() {
    		return data;
    	}
    
    	/**
    	 * @param data the data to set
    	 */
    	public static void setData(DAXData data) {
    		UpdateSet.data = data;
    		foo_menuBar = data.pruefeFooMenu();
    		foo_status  = data.pruefeFooStatus();
    		
    		//usw...
    	}
    }

    Mein Updater also hollt die Daten, lässt sie Parsen und aktualisiert UpdateSet.
  3. Am Ende des Loops, ruft der Updater die Methode update() von der Gui. Updater kennt nur Gui, Gui-Object delegiert dann den update() aufruf an die Komponente: MenuBar, StatusPanel, Tabelle usw.
    Die Views hollen selbst von UpdateSet die Daten die sie brauchen.


Darf man sowas machen? Ist es ok so oder könnte man das anders, besser lösen?

Danke schon mal 🙂
 
Hat was von MVC, wobei der Model-Teil bei dir statisch ist. Hat das einen bestimmten Grund, warum es statisch ist?
Der Sinn der foo_ Variablen ist mir aber nicht ganz klar.
 
Hat was von MVC, wobei der Model-Teil bei dir statisch ist. Hat das einen bestimmten Grund, warum es statisch ist?
Der Sinn der foo_ Variablen ist mir aber nicht ganz klar.

Das war ja auch meine Frage, denn sonst müsste ich UpdateSet erstellen jedem ViewObjekt übergeben, wenn es statisch ist können alle drauf zugreifen.

foo variablen sind nur als Beispiel, wollte nur zeigen dass MenuBar DAXData nicht braucht, zumindest nicht die AktienKurse, variable foo könnte zB true sein wenn eine vom Benutzer bestimmte Aktie gewünschten Preis erreicht, dann wird im MenuBar JMenuItem "Kaufen" aktiviert...
 

Zurück
Oben