Designfrage: Klasse <-> User Interaktion
-
Hallo zusammen,
ich habe ein kleines Designproblem.
Folgender Sachverhalt:
Ich habe ziehe prinzipiell das MVC Pattern durch, jetzt muss bei mir eine model Klasse mit dem User interagieren (einfach Nachfrage, Ja / Nein).
Ich würde eigentlich ungern den controller in der model Klasse einführen, jetzt war die Idee eine Extra Klasse (static) zu schreiben die ein Interface auf MessageBoxes zur Verfügung stellt.
Diese Klasse könnte ich dann in der Klasse in der ich es benötige bekanntmachen.Was haltet ihr davon, gibt es eine elegantere Lösung?
Danke im voraus,
blub
-
Ich weiß jetzt nicht, welche Programmiersprache du benutzt, aber generell würde ich dafür einfach ein Callback (bzw. Event) bereitstellen, so daß die GUI-Klasse dann diese Funktion bereitstellt und der Controller dann die beiden entsprechend verbindet.
-
Ich benutze C++, hätte ich evtl. sagen sollen.
Das mit den Callbacks ist tatsächlich noch eine Idee.
Nur, wenn ich grade keinen Denkfehler mache zwingt mich das ja dazu den controller in der model Klasse bekannt zu machen oder gibts da einen Weg drum herum?
-
Ja, Denkfehler -)
typedef bool (*MyCallback)(); // evtl. noch Parameter void Model::SetCallback(MyCallback); static bool GUI.ShowMessageBox(); // evtl. hier auch noch Parameter void Controller::Controller() { model.SetCallback(&gui::ShowMessageBox); }
So in der Art...
-
Ok, jetzt hab ichs verstanden, vielen Dank.