Hallo,
im Forum und auf anderen Seiten wird das MVC Prinzip meistens nur mit einem Beispiel erklärt, bei dem nur ein View, ein Model und ein Controller beteiligt sind.
Ich habe nun ein Model1, das Objekte enthält, daraus leite ich ein Model2 ab, dass Referenzen auf Objekte in Model1 enthält aber auch eigene Objekte.
Für Model1 gibt es ein View1, für Model2 ein View2 und es gibt den Controller1, der das Model1 'observiert' und View1 aktualisiert (und halt andersrum) und Controller2, der Model2 observiert und View2 aktualisiert.
Jetzt möchte ich, dass View1 auch aktualisiert wird, wenn die Referenzen aus Model2 die auf Model1 zeigen bearbeitet werden. Melde ich da einfach den Controller1 als Observer bei Model2 an? Oder programmiert man das überhaupt nicht so, dass ein Model Referenzen auf Objekte eines anderen Models hat.
Es funktioniert wahrscheinlich schon irgendwie mit dem Anmelden des Controllers1 bei Model2, aber ich würde gerne wissen, wie man das 'richtig' programmiert (also was das beste 'Design' für so einen Fall ist).
im Forum und auf anderen Seiten wird das MVC Prinzip meistens nur mit einem Beispiel erklärt, bei dem nur ein View, ein Model und ein Controller beteiligt sind.
Ich habe nun ein Model1, das Objekte enthält, daraus leite ich ein Model2 ab, dass Referenzen auf Objekte in Model1 enthält aber auch eigene Objekte.
Für Model1 gibt es ein View1, für Model2 ein View2 und es gibt den Controller1, der das Model1 'observiert' und View1 aktualisiert (und halt andersrum) und Controller2, der Model2 observiert und View2 aktualisiert.
Jetzt möchte ich, dass View1 auch aktualisiert wird, wenn die Referenzen aus Model2 die auf Model1 zeigen bearbeitet werden. Melde ich da einfach den Controller1 als Observer bei Model2 an? Oder programmiert man das überhaupt nicht so, dass ein Model Referenzen auf Objekte eines anderen Models hat.
Es funktioniert wahrscheinlich schon irgendwie mit dem Anmelden des Controllers1 bei Model2, aber ich würde gerne wissen, wie man das 'richtig' programmiert (also was das beste 'Design' für so einen Fall ist).