Hallo liebe Leute
Ich hatte eine View, ein Model und einen Controller für mein Programm und war fast soweit, eine erste lauffähige Minimalversion zu haben. Dann hab ich festgestellt, daß ich mich heillos im Code verzettelt habe. Also vieles gelöscht und nochmal von vorne begonnen und das Ganze vorher mal grafisch hingemalt.
Jetzt ist meine Frage: Geht das so, kann man das so machen oder wird das Mist? Da ich vom Programmieren ja eigentlich keinerlei Ahnung habe wollte ich mal eure Meinung dazu hören bevor ich wieder einen dritten Anlauf unternehmen muß bis es mir gefällt. Auch von UML hab ich keinerlei Ahnung (wie stellt man sowas eigentlich richtig dar?), aber vielleicht gibt das Bild eine Idee davon wie ich mir das gedacht habe:

Ich fange mal mit der View an: Ich plane, hier zwei Interfaces zu implementieren um die für Controller und Model interessanten Methoden getrennt darstellen zu können. Die View übergibt dem Controller ein Command-Objekt (nicht dargestellt), das den vom Benutzer ausgewählten Befehl darstellt. Der Controller führt dann das Command-Objekt auf dem Model (dafür das Commandable-Interface) aus, später soll der Controller die Command-Objekte speichern, um Befehle wieder rückgängig zu machen.
Model<>View ist ein schnödes Beobachtermuster: Das Model triggert die View mit einer Modelchange-Enumeration, die View holt sich daraufhin beim Model die benötigten Daten ab.
Eine ähnliche Beziehnung gibt es nochmal zwischen View<>Controller: Hier teilt der Controller der View mit, ob z.B. ein Befehl rückgängig gemacht werden kann oder ob nach einer Rückgängig-Orgie wieder vorgespult werden kann.
Was sagt ihr dazu? Was würdet ihr anders machen? Ich habe einerseits noch sehr viele Ideen, die ich gerne implementieren will, andererseits will ich wenigstens einen Teil des Programms endlich mal benutzen können. Daher will ich das Ganze so halten, das Erweiterungen möglichst ohne größere Schmerzen eingebaut werden können.
Ich hatte eine View, ein Model und einen Controller für mein Programm und war fast soweit, eine erste lauffähige Minimalversion zu haben. Dann hab ich festgestellt, daß ich mich heillos im Code verzettelt habe. Also vieles gelöscht und nochmal von vorne begonnen und das Ganze vorher mal grafisch hingemalt.
Jetzt ist meine Frage: Geht das so, kann man das so machen oder wird das Mist? Da ich vom Programmieren ja eigentlich keinerlei Ahnung habe wollte ich mal eure Meinung dazu hören bevor ich wieder einen dritten Anlauf unternehmen muß bis es mir gefällt. Auch von UML hab ich keinerlei Ahnung (wie stellt man sowas eigentlich richtig dar?), aber vielleicht gibt das Bild eine Idee davon wie ich mir das gedacht habe:

Ich fange mal mit der View an: Ich plane, hier zwei Interfaces zu implementieren um die für Controller und Model interessanten Methoden getrennt darstellen zu können. Die View übergibt dem Controller ein Command-Objekt (nicht dargestellt), das den vom Benutzer ausgewählten Befehl darstellt. Der Controller führt dann das Command-Objekt auf dem Model (dafür das Commandable-Interface) aus, später soll der Controller die Command-Objekte speichern, um Befehle wieder rückgängig zu machen.
Model<>View ist ein schnödes Beobachtermuster: Das Model triggert die View mit einer Modelchange-Enumeration, die View holt sich daraufhin beim Model die benötigten Daten ab.
Eine ähnliche Beziehnung gibt es nochmal zwischen View<>Controller: Hier teilt der Controller der View mit, ob z.B. ein Befehl rückgängig gemacht werden kann oder ob nach einer Rückgängig-Orgie wieder vorgespult werden kann.
Was sagt ihr dazu? Was würdet ihr anders machen? Ich habe einerseits noch sehr viele Ideen, die ich gerne implementieren will, andererseits will ich wenigstens einen Teil des Programms endlich mal benutzen können. Daher will ich das Ganze so halten, das Erweiterungen möglichst ohne größere Schmerzen eingebaut werden können.