Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo

hab am Montag ne prüffung über MVC.

Ich bin ein bisschen unsicher.

Also:

View = das Gui

gehören da die werte die ins Gui geschrieben werden dazu oder ist das dan schon im Model drinn?

Control = funktionen/aktionen

Ich klicke irgend was an(Button,Filter,etc.) dies beeinflusst danach das Model.

Model = Programm?

das Model verarbeitet die Daten.

hab ich das soweit richtig verstanden?

Geschrieben

und auch via wiki bekomme ich nichts anderes raus.

Mein problem ist nicht das erkennen was worein gehört, eher wie ich sowas in einem code realisiern kann.

p.s. hab gerade wichtigere prüfungen als diese hier, daher der späte einsatz.

Geschrieben

Eine ganz pauschale Aussage läßt sich da meiner Meinung nach kaum treffen, da die Komponenten je nach Anwendung mehr oder weniger umfangreich sind.

Momentan arbeite ich an einer JSF-Anwendung, deren Daten größtenteils in einer Datenbank liegen. Klar ist dabei, daß die View das Webinterface umfaßt. Aber es gehören auch die Daten dazu, die vom Client zum Server geschickt werden. Zudem geht ein Teil des JSF-Lifecycles in die View mit ein. So kann man sagen, daß die View eben darstellungsrelevante Daten enthält und ebenso darstellungsrelevante Arbeiten übernimmt (wo hat sich was geändert; wen muß ich informieren).

Das Model hingegen besteht zum einen aus den Daten der Datenbank. Dazu gehört wohl aber auch verarbeitender Code. Man stelle sich zum Beispiel eine Spalte "ADMIN" vor, die die Werte 0 bzw. 1 für ja/nein enthält. Ein Konverter, der die Werte 0/1 für die Anwendung auf true/false münzt und umgekehrt, gehört dann wohl auch zum Model. Ebenso prüfender/validierender Code.

Der Controller ist da schon schwieriger zu definieren. Klar ist, daß er die Schnittstelle zwischen View und Model bildet und den "Business-Code" enthält. Dabei kann man die Grenzen an den Schnittstellen beliebig fließend gestalten. Beispielsweise kann man den Code, der nur Aufbereitung für die View betreibt im Business-Code verankern, man kann ihn aber auch elegant davon trennen, wodurch er eher zur View zählt. Da kommt es eben auf den Umfang des Projekts an. Aber grundsätzlich ist der Controller eben dazu da, die Daten des Models für die View bereit zu stellen und auf die Aktionen der View entsprechend zu reagieren. Ob jetzt mit Fehlermeldungen oder mit einer Anpassung des Models. Und das Model kümmert sich um die Konsistenz der Daten. So in etwas ;)

Geschrieben

@newlukai

Vielen Dank eine sehr gute Erklärung!

Das hat mich weiter gebracht. Die Theorie ist mir nun klar,

Jedoch hab ich probleme mit dem code. Wie kann ich den code so schreiben?

kleines beispiel ?

Danke vielmals

Geschrieben

Kleines Beispiel ist gut ;)

MVC wird eher in größeren Projekten angewandt. Aber glücklicherweise habe ich da tatsächlich durch die Übungen im Studium das ein oder andere anschauliche Beispiel. Kennst Du Dich ein wenig mit Java aus? Dann würde ich Dir mal etwas zukommen lassen.

Ich kann's mal kurz erläutern: Aufgabe war es eine Artikel-Verwaltung zu schreiben. Der Nutzer sollte also auf der Konsole einen Artikel in ein Lager einpflegen können bzw. löschen/ausgeben/etc.

Dazu gibt's auf der einen Seite eine Klasse Artikel, die die Daten eines Artikels enthält und fast ausschließlich zur Datenhaltung da ist. Zusätzlich enthält sie noch etwas prüfenden Code.

Die Artikel sollten von einer Klasse Lager verwaltet werden. In diesem Fall in einem Array. Das Lager kümmert sich also eher um Fragen wie "Ist das Lager voll?", "Ist der einzufügende Artikel schon im Lager?" etc.

Dann gibt es noch eine Klasse, die die Daten in eine Datei schreibt. Und eine Klasse, die sich um die Ein-/Ausgabe kümmert, ist auch vorhanden.

Model und View können dabei klar getrennt werden. Doch der Controller geht - wegen der Größe des Projekts - in der View auf. Also übernimmt die Klasse, die die Ein-/Ausgabe enthält eben nicht nur die Ein-/Ausgabe sondern auch einen Großteil der Frage, wie auf welche Eingabe zu reagieren ist.

Geschrieben (bearbeitet)

Das ganze auch mit Beispiel gibt es hier

Eigentlich läuft es auf folgendes hinaus. Du hast drei unabhängige Teile in deinem Programm.

Ein Model, mindestens ein View und mindestens ein Controller.

Das Model hält die Daten. Es stehen zwar auch im View Daten, da der View sie ja anzeigen muss, aber eben auch nur die, die er anzeigen muss. Und für die Konsistenz ist das Model zuständig.

Ein View ist eine graphische Darstellung der Daten und des Zustandes des Programmes.

Ein Controller ist alles, was Ereignisse ausserhalb des Programmes verarbeitet und entsprechende Nachrichten an Model und View weiterleitet.

Bearbeitet von Panke

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...