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.
Darf man sowas machen? Ist es ok so oder könnte man das anders, besser lösen?
Danke schon mal
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.
- Alle Views implementieren Schnittstelle Updatable, somit haben alle Views eine Methode update().
- 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.
- 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