08.03.2012, 13:56
Heyho ihr wenigen LVOOP Nutzer,
ich hab mir mal zwei von den LVOOP Einsteiger-Onlinecasts von NI angeschaut. Dabei kam unter anderem Dynamic dispatching zur Sprache, sprich: Objekte können in einem Array von Elternobjekt abgelegt werden und von da aus dann mit Dynamic dispatch VIs behandelt werden, die dann einfach auf das entsprechende VI der eigentlichen Kindklasse zugreifen (im Beispiel: Säugetiere als Oberklasse und dann verschiedene Typen von Säugetieren (Hund, Katze, Maus, Mensch) bei denen dann das entsprechende "Talk" VI aufgerufen wird so dass die zwar alle im gleichen Array "aufbewahrt", machen dann aber Objektspezifisch ihr Talk.
Nun habe ich mich gefragt wie sinnvoll / wenig sinnvoll es ist dieses Prinzip in einer Statemachine zu nutzen. Wenn sich dabei nur wenige "Details" ändern könnte man ja einfach über einen Elternzustand (der alle unveränderlichen Funktionalität sowie Schnittstellen für das Dynamic dispatching definiert) und verschiedene davon abgeleitete Kindzustände die Statemachine Implementiert. Ein Zustandsübergang wäre dabei dann jeweils ein Cast auf die Elternklasse und dann auf die neue Kindklasse.
Vorteil: Man isoliert die Zustände besser voneinander. Außerdem müsste das an sich auch übersichtlicher sein.
Nachteil: Potentieller Overhead?
Im übrigen: Funktioniert das überhaupt so wie ich mir das denke? Oder mach ich da einen Denkfehler?
Gruß Kiesch
ich hab mir mal zwei von den LVOOP Einsteiger-Onlinecasts von NI angeschaut. Dabei kam unter anderem Dynamic dispatching zur Sprache, sprich: Objekte können in einem Array von Elternobjekt abgelegt werden und von da aus dann mit Dynamic dispatch VIs behandelt werden, die dann einfach auf das entsprechende VI der eigentlichen Kindklasse zugreifen (im Beispiel: Säugetiere als Oberklasse und dann verschiedene Typen von Säugetieren (Hund, Katze, Maus, Mensch) bei denen dann das entsprechende "Talk" VI aufgerufen wird so dass die zwar alle im gleichen Array "aufbewahrt", machen dann aber Objektspezifisch ihr Talk.
Nun habe ich mich gefragt wie sinnvoll / wenig sinnvoll es ist dieses Prinzip in einer Statemachine zu nutzen. Wenn sich dabei nur wenige "Details" ändern könnte man ja einfach über einen Elternzustand (der alle unveränderlichen Funktionalität sowie Schnittstellen für das Dynamic dispatching definiert) und verschiedene davon abgeleitete Kindzustände die Statemachine Implementiert. Ein Zustandsübergang wäre dabei dann jeweils ein Cast auf die Elternklasse und dann auf die neue Kindklasse.
Vorteil: Man isoliert die Zustände besser voneinander. Außerdem müsste das an sich auch übersichtlicher sein.
Nachteil: Potentieller Overhead?
Im übrigen: Funktioniert das überhaupt so wie ich mir das denke? Oder mach ich da einen Denkfehler?
Gruß Kiesch