Frage Nummer drei in meinem Bestreben zu verstehen, um richtig MVC vor ich es umsetzen:Mit MVC, wie sollte man die Kommunikation zwischen Ansichten handhaben? Zwischen Modellen?
ich zwei Fälle im Sinn haben:
- Die primäre Anwendung Fenster braucht das Einstellungsfenster zu starten. (Eine Ansicht ruft eine andere Ansicht auf.)
- Das primäre Modell für eine Anwendung muss im Präferenzmodell auf eine Eigenschaft zugreifen. (Ein Modell Zugriff auf ein anderes Modell.)
sind in diesen Fragen zusammen, dass sie beide Kommunikation beinhalten über Model-View-Controller-Drillinge, ein Thema, das ich nicht viel Diskussion in meinem googeln gefunden haben.
Der offensichtliche Weg, dies zu beheben, ist alles in einem Top-Level „Anwendung“ Objekt wickeln, die Transaktionen zwischen Models und ermöglicht Controllern arbeitet ein Verfahren des anderen aufzurufen. Ich habe das implementiert gesehen, aber ich bin nicht davon überzeugt, dass es eine gute Idee ist. Ich sehe auch Möglichkeiten, Controller zu verwenden, die mehr als ein Modell beobachten und auf mehr als eine View reagieren, aber das scheint so, als würde es sehr unübersichtlich und schwer zu folgen sein. Beste
Vorschläge, wie diese Art von Übersprechen zu implementieren? Ich fühle mich wie eine sehr offensichtliche Frage, aber ich konnte keine gut dokumentierte Lösung finden.
Auf einer breiteren Kenntnis, wenn jemand einen Link hat, die diese Art von MVC Probleme typische Ansätze zeigt, würde ich gerne sehen. Ich hatte nicht viel Glück, solide, nicht triviale Referenzen zu finden. Beispiele in Python wären schön, aber ich lese gerne alles.
Edit 1:
ich einige ziemlich interessante Dinge siehe unten und im allgemeinen niemand gesagt scheint ein Problem mit dem Ansatz habe ich beschrieben habe. Es ist schon fast eine faule Form des FrontController-Designs, das Vincent beschreibt. Ich sehe sicherlich keine Probleme bei der Umsetzung dieses Schemas, aber es scheint nicht, dass jemand wirklich die Frage in Bezug auf die Kommunikation zwischen Models angesprochen hat. Alle Antworten scheinen sich auf die Kommunikation zwischen Objekten in einem einzigen Modell zu beziehen. Ich bin mehr daran interessiert, separate Modelle für einzelne Komponenten der Anwendung zu pflegen, so dass ich nicht fünfzig Zustandseigenschaften in eine einzige Modellklasse stopfen kann. Sollte ich sie stattdessen als Untermodelle beibehalten?
Wir sprechen über mehrere Klassen im Modell. Das Modell bezieht sich auf ALLE Klassen (Komponenten), die Daten darstellen, und Operationen mit Daten bilden das Modell. Diese Klassen kooperieren miteinander. –