Wann ist MVC sinnvoll?

Status
Nicht offen für weitere Antworten.

Marcel_Handball

Bekanntes Mitglied
Hi zusammen,

ich fange gerade an die GUI für ein größeres Projekt zu schreiben, um die bisher ermittleten Informationen darzustellen.

Damit die Struktur von Anfang an übersichtlich bleibt, lese ich mich gerade etwas genauer in das MVC Pattern ein.
Doch ist dieses auch sinnvoll anzuwenden, wenn es nur eine View gibt? Denn beim Aktivieren einer GUI-Kompnente in der der View wird ja der Controller informiert (angemeldeter Listener aufgerufen), der das entsprechende Model aktualisiert. Dadurch werden die jeweils angemeldeten Views benachrichtigt.

Es erscheint mir nützlich diesen Weg zu gehen, da so nicht der ganze auszuführende Quellcode in den Listeners in der View steht.


Aber lohnt es sich denn, zum Beispiel beim Drücken eines Buttons, den Umweg über den Controller und dem Model zu gehen (, damit dieser dann die View wieder informiert, die das Ereignis ja erst ausgelöst hat) wenn es nur eine View gibt?
 

Painii

Bekanntes Mitglied
Aber lohnt es sich denn zum Beispiel beim Drücken eines Buttons den Umweg über den Controller und dem Model zu gehen (, damit dieser dann die View wieder informiert, die das Ereignis ja erst ausgelöst hat) wenn es nur eine View gibt?

Wenn das Projekt gross genug ist wirst du wohl nicht auf die Zeit sehen können ob nicht doch mal 2 verschiedene Views das gleiche Model anschauen wollen.

Und du kannst auch Views bauen wo dann auch kein Controller was macht (das ist dann eben read-only aufs model - wenn dein view logik beinhaltet geht das nicht).

Ist eben ein Vorteil, du kannst dir soviele views bauen wie du brauchst, lieber jetzt sauber programmieren als dass du dich da später noch durchfrickeln musst wenn du es doch anders brauchst.
 

Marcel_Handball

Bekanntes Mitglied
Könnt ihr mir ein Beispiel nennen, in der mehrere Views enthalten sind.

Ich kann mir zurzeit nur schwer ausmalen, wie dies aussehen würde, da ich im Grunde nur eine GUI-Oberfläche schreiben möchte. Wie könnten dort nun noch weitere Views hinzukommen und zu welchen Zweck?
 

Painii

Bekanntes Mitglied
Java:
public static void main(String[] args){
 Model m = new Model();
 View view1 = new PrimitiverView(m); //Gibt Daten auf der Konsole aus
 View view2 = new AufwaendigerView(m); //Gibt Daten mit GUI aus, bunte Bildchen etc.
 View view3 = new SpecialView(m); //z.b. für sehbehinderte
}
Wenn sich m ändert sieht man es sowohl in view1 als auch in view2, nur die Art der Ausgabe ist eben anders.

edit:
Konkret können mehrere views auch sinnvoll sein bei sehbehinderten... (Gibt ja z.b. hardware für blindenschrift)
Da könnte ein Bild dann einmal auf dem Bildschirm ausgegeben werden, andererseits auch Informationen auf die Zeile geschrieben werden.
 
Zuletzt bearbeitet:

Marcel_Handball

Bekanntes Mitglied
Die Umsetzung von mehreren Views ist klar, doch wann ist dies sinnvoll oder wobei setzt man mehrere views ein.

Ich schreibe nun nur eine Swing-Oberfläche. Wofür könnte dort z.B. eine zweite View hinzukommen?
 

gizmo

Bekanntes Mitglied
Das klassische Beispiel ist:
Du hast eine Tabelle mit Daten und ein Diagramm, welches die Daten visualisiert.
Wenn du nun die Daten in der Tabelle änderst, soll das Diagramm aktualisiert werden.
 

Marcel_Handball

Bekanntes Mitglied
Also stellt die View nicht immer die gesamte Oberfläche dar, sondern ist dabei häufig nur ein Teil der GUI, z.B. ein Panel im Frame?
 

gizmo

Bekanntes Mitglied
Das kannst du implementieren wie du willst. Wenn du die Panels einigermassen autonom gestaltest, gewinnst du flexibilität.

Meistens hat eine MVC-Applikation mehrere Views, Controller, Models. Es kann auch mehrere Views auf dasselbe Model geben. Das MVC Konzept hilft dir hier beim Updaten der Views.
 

Painii

Bekanntes Mitglied
GUI ist meist view+controller, ja. (Interface kann eben Ein- und Ausgabe sein)

Ein Button zum erstellen von einem Objekt wäre Controller, eine Auflistung aller Objekte aber View.
 
J

JohannisderKaeufer

Gast
Ein weiteres Beispiel für verschiedene Views sind Computerspiele bei denen man eine 3D-Ansicht hat und auf eine weitere View in der eine 2Dimensionale Kartenansicht dargestellt wird.
 

sliwalker

Top Contributor
Kann auch noch ein ziemlich beliebtes Szenario beisteuern:

Du schreibst erst eine Swing-Applikation. Dein Chef findet es toll und nun soll es für alle im Browser verfügbar sein.
Viel Spaß ohne MVC. ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
perlenfischer1984 Wann ist ein Parameter Check sinnvoll Allgemeine Java-Themen 7
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
LimDul Spezifkation, wann es deprecation Warnings gibt Allgemeine Java-Themen 1
N Streams wann .filtern? Allgemeine Java-Themen 2
T GUICE- Dependency Injection- WANN nutze ich Providers? Allgemeine Java-Themen 2
B Erkennen, wann Prozess beendet ist, dann Thread beenden. Allgemeine Java-Themen 6
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
Rudolf Wann System.exit und wann dispose? Allgemeine Java-Themen 9
L Checkstyle: Wann ist eine Methode für Vererbung entworfen? Allgemeine Java-Themen 13
X Wann ist Runtime.getRuntime().exec mit Copy fertig? Allgemeine Java-Themen 10
M Wann Membermethoden, wann statische Utility-Methoden? Allgemeine Java-Themen 24
Ark Wann 64 Bit-Befehle im Einsatz? Allgemeine Java-Themen 6
G Wann normale Exception und wann Runtimeexception Allgemeine Java-Themen 12
Y Wann folgende Technologien benutzen Allgemeine Java-Themen 5
G Parameter oder Attribut (wann nehme ich was?) Allgemeine Java-Themen 12
M Wann verwendet man PropertyChangedEvents, wann eigene? Allgemeine Java-Themen 3
F Wann und wie Exceptions einsetzen? Allgemeine Java-Themen 13
G Wann statische Methoden, statische Attributen? Allgemeine Java-Themen 7
G Ab wann Datenbank verwenden Allgemeine Java-Themen 15
B Wann Interface und wann Adapter Allgemeine Java-Themen 4
B ObjectInputStream - Wann ist Ende erreicht? Allgemeine Java-Themen 10
D Wann ist das ergebnis einer Rechnung eine Double? Allgemeine Java-Themen 7
M Maximal verfügbarer Hauptspeicher? Ab wann wird ausgelagert? Allgemeine Java-Themen 13
P Wann kommt denn nun 1.5 überhaupt? Allgemeine Java-Themen 6
8u3631984 Bilder in Datenbank speichern - sinnvoll Allgemeine Java-Themen 5
G Methoden für die Zukunft sinnvoll? Allgemeine Java-Themen 4
W Wieviele Threads sind sinnvoll? Allgemeine Java-Themen 8
J wie sollte man sinnvoll seinen Code aufteilen Allgemeine Java-Themen 6
I Laden von Informationen aus Dateien: Austauschbarkeit: 2 Dateien sinnvoll? Allgemeine Java-Themen 2
M Welche Exceptionbehandlung ist sinnvoll? Allgemeine Java-Themen 3
F Enums als innere Klasse sinnvoll? Allgemeine Java-Themen 3
C Best Practice [Arrays] Wie sinnvoll prüfen, ob Array primitive Datentypen enthält? Allgemeine Java-Themen 6
D Fehlgeschlagene Logins zählen... Was ist sinnvoll? Allgemeine Java-Themen 2
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
G Interface Laden der Konfiguration über Interfaces sinnvoll? Allgemeine Java-Themen 28
P Eclipse Java RCP mit Eclipse e4 - sinnvoll? Allgemeine Java-Themen 3
B Datentypen JMF: Player LinkedList sinnvoll? ca 30 kurze Sounddateien Allgemeine Java-Themen 3
S [THREADS] Thread sinnvoll beenden Allgemeine Java-Themen 2
S Welche Datenstruktur für verschiedene Sprachen sinnvoll? Allgemeine Java-Themen 2
O ist tiefes Kopieren sinnvoll? Allgemeine Java-Themen 14
M Geschützte Systemdateien sinnvoll umgehen bei listFiles() Allgemeine Java-Themen 7
A [gelöst] Dynamischen Webseitentest automatisieren mit Java sinnvoll? Allgemeine Java-Themen 6
V Empfangene Daten sinnvoll Puffern Allgemeine Java-Themen 3
H Extra-Thread sinnvoll für XML-Datei laden? Allgemeine Java-Themen 4
S Textfeld Parser sinnvoll? Allgemeine Java-Themen 3
G Strings die Zahlen enthalten sinnvoll sortieren (A2 < A10 Allgemeine Java-Themen 4
T "Programming against the interface" sinnvoll? Allgemeine Java-Themen 18
F Viele generische Parameter sinnvoll? oder besser casten? Allgemeine Java-Themen 10
M wie sinnvoll parsen ? Allgemeine Java-Themen 4
M Wie parst man sinnvoll? Allgemeine Java-Themen 7
A Als FINAL deklarieren -> sinnvoll? Allgemeine Java-Themen 16
K Regex Versucher 2 *Update - sinnvoll und schön* :) Allgemeine Java-Themen 6
Redfrettchen Rückgabe nicht sinnvoll: Exception oder null zurück? Allgemeine Java-Themen 9
G klassendesign. aber wie (sinnvoll)? Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben