Einzelnen Beitrag anzeigen
Alt 27-07-2010, 06:10   #2 (permalink)
malthoff
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Unterhaching/München
Beiträge: 513
Post View aus der Auto

Hat eine Zeit gedauert und ich verstehe auch immernoch nicht ganz, was Dein Problem ist. Eigentlich glaube ich, dass Du nicht willst, dass für jede Instanz von Auto ein kompletter ViewGraph entsteht.

Allerdings macht mich dein Code stutzig. In der main() übergibst Du dem Auto sein Modell, aber in der Auto Klasse selber kommt diese nicht an und du erzeugst darin ein neues.

Ich löse die Trennung so, dass ein Modell getrennt von der View erstellt wird. Die View hat eine onModelData(data:ModelEvent) Methode und ich verbinde in einer Controller Klasse Model mit View.
PHP-Code:
model.addEventListener(ModelEvent.DATA,view.onModelData,false,0,true
In der Controllerklasse erzeuge ich erst das Modell, dann die View (die sich selber darum kümmert all ihre kleinen internen Views zu erzeugen. Und wenn ModelData in der View ankommt, zerpflückt die View die Daten und leitet sie in die Einzelviews weiter.

Wenn jetzt ein neues Model (anderes Auto) angezeigt werden soll, brauche ich nur das erste Model abzulösen und das neue anzudocken
PHP-Code:
model1.removeEventListener(ModelEvent.Data,view.onModelDatafalse);
model2.addEventListener(ModelEvent.DATA,view.onModelDatafalse0true); 
Es besteht also nur eine View, die die jeweiligen Daten verschiedener Modelle anzeigt. Wenn man will, kann man natürlich noch x Views dazu erstellen und sie mit y Modellen verknüpfen.
Wenn ich jetzt, z.b durch die Kontrollerklasse das Model anrege, einmal seinen aktuellen Zustand zu broadcasten, zeigt die im Moment einzige View die neuen Daten von Model2.

Passt das zu dem, was Du zur Frage hattest?
malthoff ist offline   Mit Zitat antworten