Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-03-2007, 12:08   #1 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 935
MVC Pattern - Model aufsplitten?

Hallo Leute,

ich wollte mal ganz allgemein fragen, ob es bei großen Datenmengen Sinn macht, dass Model in einzelne Teilbereiche zu zerteilen.

Ist das üblich?
derRaab ist offline   Mit Zitat antworten
Alt 02-03-2007, 18:49   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Absolut. Ein Model besteht (meist) aus vielen Untermodellen.

Geändert von bokel (02-03-2007 um 18:51 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 05-03-2007, 09:37   #3 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 935
Danke Bokel, dachte ich mir.

Also erstelle ich EIN dickes Model in dem Instanzen von einzelnen, spezifischeren Modeln initialisiert werden (Aggregation).

Aber Listening auf Change-Events ermögliche ich nicht auf die einzelnen sondern das EINE dicke Model, oder?

M
derRaab ist offline   Mit Zitat antworten
Alt 05-03-2007, 09:47   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Wieso nicht gleich die spezifischen Modells über einen Wrapper oder Mediator adressieren?
Omega Psi ist offline   Mit Zitat antworten
Alt 05-03-2007, 16:56   #5 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 935
Naja, so ganz schlau bin ich leider noch nicht geworden.

Zuerst mal noch eine Frage zum MVC ansich: Es ist doch so, dass ich jegliches serverseitiges Datenupdate innerhalb des Models mache. Also ungefähr so:

* Methodenaufruf Model.addItem();
* Serverkommunikation
* Erfolgsmeldung vom Server
* Model erst jetzt aktualisieren mit neuem Item
* onChange event auslösen

Oder? Klar, dass ich die Serverkommunikation über eine zentrale Klasse manage...

Und vielleicht direkt zur Anwendung bei mir in der Software: Es gibt ein umfangreiches Datenmodell, in dem folgendes hinterlegt ist:

* Meine Presentationen
* Öffentliche Presentationen
* Meine Slides
* Öffentliche Slides
* Templates für Slides
* Meine Elemente
* Öffentliche Elemente
* Aktuelle ausgewählte Zeitleiste

Zusätzlich wird dann auch noch die aktuelle Auswahl gespeichert usw.

Ändere ich dann z. B. "selectedPresentation" durch irgend einen Controller, dann müsste ich doch folgendes tun:

* Aktuell ausgewählte Zeitleistendefinition laden
* Wenn die geladen ist ein onChange Event auslösen
* Die "Timeline" View reagiert auf das Event, ließt "selectedPresentation" aus und stellt diese dar...

Oder?
derRaab ist offline   Mit Zitat antworten
Alt 05-03-2007, 17:09   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Zitat:
Zitat von derRaab Beitrag anzeigen
Naja, so ganz schlau bin ich leider noch nicht geworden.

Zuerst mal noch eine Frage zum MVC ansich: Es ist doch so, dass ich jegliches serverseitiges Datenupdate innerhalb des Models mache. Also ungefähr so:

* Methodenaufruf Model.addItem();
* Serverkommunikation
* Erfolgsmeldung vom Server
* Model erst jetzt aktualisieren mit neuem Item
* onChange event auslösen

Oder? Klar, dass ich die Serverkommunikation über eine zentrale Klasse manage...
Ähm, also... so pauschla kann ich da nicht zustimmen oder widersprechen.
  • Wieso willst du bei jeder Änderung des Datenbestandes die Änderung persistent speichern?
  • Die Änderung findet schon explizit Client-seitig statt, denn dort werden die Items hinzugefügt.
  • Eine Datenbank ist in erster Linie nur eine Möglichkeit, Datenbestände persitent zu speichern. Die Datenbank als Teil des Modells zu sehen, ist in meinem Augen falsch, da man so bei vielen Client-seitigen Datenmanipulationen auch jedes Mal eine Datenbanktransaktion aufbaut.

Zitat:
Zitat von derRaab Beitrag anzeigen
Und vielleicht direkt zur Anwendung bei mir in der Software: Es gibt ein umfangreiches Datenmodell, in dem folgendes hinterlegt ist:

* Meine Presentationen
* Öffentliche Presentationen
* Meine Slides
* Öffentliche Slides
* Templates für Slides
* Meine Elemente
* Öffentliche Elemente
* Aktuelle ausgewählte Zeitleiste

Zusätzlich wird dann auch noch die aktuelle Auswahl gespeichert usw.

Ändere ich dann z. B. "selectedPresentation" durch irgend einen Controller, dann müsste ich doch folgendes tun:

* Aktuell ausgewählte Zeitleistendefinition laden
* Wenn die geladen ist ein onChange Event auslösen
* Die "Timeline" View reagiert auf das Event, ließt "selectedPresentation" aus und stellt diese dar...

Oder?
Das klingt so kompliziert... sind das alles Klassen?
Omega Psi ist offline   Mit Zitat antworten
Alt 05-03-2007, 17:20   #7 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 935
Ich muß jede Änderung serverseitig speichern... Da geht es um eine Entwicklungsumgebung für Präsentationen. Aber vielleicht war das ein etwas blödes Beispiel. Stell Dir vor ich bearbeite ein Layout und speichere dann dieses ab. Erst auf dem Server und dann im Model. Und wenn das geschafft ist, onChange-Event (auch wenn dann die Layout ansicht nicht updated, weil es ja schon den aktuellsten Stand darstellt...)

Und im Model sind das momentan noch nicht alles Klassen. Wobei ich schon gerne für jede Liste gerne eine eigene Klasse aufsetzen möchte, in der ich dann wiederum mit typisierten Inhalten (weitere Klassen, z. B. "Slide") arbeiten kann...

M
derRaab ist offline   Mit Zitat antworten
Alt 05-03-2007, 17:29   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Also arbeitest du quasi mit einer serverseitigen Entwicklungsumgebung. Ok, das macht einiges klarer. Ich würde die Daten halt regelmässig speichern und mir die wiederholen, wenn du sie brauchst. Alles andere ist Unsinn.

Achte bei den Klassen darauf, dass du sie sinnvoll strukturierst. Einmal den Datenbestand im speicher halten und dann immer auf die jeweiligen Klassen mappen.
Omega Psi ist offline   Mit Zitat antworten
Alt 06-03-2007, 08:54   #9 (permalink)
Markus Raab
 
Benutzerbild von derRaab
 
Registriert seit: Aug 2001
Ort: Berlin Friedrichshain
Beiträge: 935
Jo. Ich wollte ja nur noch mal sicher stellen, dass alle Serverupdates durch das Model verwaltet werden und nicht woanders...

Danke für das Feedback.
derRaab ist offline   Mit Zitat antworten
Alt 06-03-2007, 08:58   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.403
Ja, das ist der Fall.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele