MVC Design Pattern - Verständniss Fragen

Status
Nicht offen für weitere Antworten.

mephi

Bekanntes Mitglied
Ich steh zwar mit GUIs auf Kriegsfuß, möchte jetzt aber mal ein Programm komplett mit GUI bauen. Nur fehlt mir noch etwas das Verständniss vom MVC..

a)
es sollen ja keine referenzen direkt übergeben werden und nur über addObserver gearbeitet werden?

b)
was mache ich am besten wenn ich eine Observable Klasse habe die viele verschiedene Daten beinhaltet. Wie teil ich das am besten über notifyObservers mit welches sich jetzt genau geändert hat? kann ich einfach das entsprechende objekt übergeben und alles in der dazugehörigen gui klasse auslesen?

c)
wer kennt überhaupt wen? die haupt controller-klasse kennt das frame und alle model objekte?
ich habe ein koordinatensystem aus "kacheln" soll die links außen angeklickt werden soll links eine neue eingefügt werden. dazu muss der controller doch die passende gui komponente kennen.. oder?

sorry wenn die fragen vll bissl blöd sind. aber mit gui konnte man mich bisher echt jagen
 

byte

Top Contributor
mephi hat gesagt.:
a)
es sollen ja keine referenzen direkt übergeben werden und nur über addObserver gearbeitet werden?

Verstehe nicht, was Du damit meinst. Es gibt haufenweise Möglichkeiten, MVC zu realisieren. Observer-Pattern ist nur eine von vielen Möglichkeiten. Deswegen spricht man eigentlich bei MVC nicht von einem Pattern, weil es dafür nicht aussagekräftig genug ist. MVC sagt nur, dass Daten (Modell) und GUI (View) sich nicht direkt kennen sondern über Controller (z.B. Observer/Listener, Actions, Content/Label-Provider bei SWT, ...) gekoppelt sind. Hat den Sinn, dass man das Datenmodell auch ohne die View verwenden kann bzw. die View später noch austauschen kann. Streng genommen kann man auch das Datenmodell austauschen, aber meistens wird die View ja explizit für ein bestimmtes Datenmodell geschrieben. Von daher sieht man das häufig nicht so streng und schmeisst auch mal Controller in die View.

b)
was mache ich am besten wenn ich eine Observable Klasse habe die viele verschiedene Daten beinhaltet. Wie teil ich das am besten über notifyObservers mit welches sich jetzt genau geändert hat? kann ich einfach das entsprechende objekt übergeben und alles in der dazugehörigen gui klasse auslesen?

Der Observer kann alles auslesen, was das Observable beinhaltet. Musst dafür natürlich auf der anderen Seite explizit auf den Typ prüfen.

c)
wer kennt überhaupt wen? die haupt controller-klasse kennt das frame und alle model objekte?
ich habe ein koordinatensystem aus "kacheln" soll die links außen angeklickt werden soll links eine neue eingefügt werden. dazu muss der controller doch die passende gui komponente kennen.. oder?

view <---> controller <---> model
 

EOB

Top Contributor
hi,

1. würd ich so nicht unbedingt sehen. mann könnte viel mit interfaces arbeiten, das macht alles sehr flxibel.

2. warum übergibst du nicht immer alles? wenns gleich ist, macht es ja nix...oder seh ich das falsch?

3. der controller ist im view drinne, kann also auch ruhig die view komponenten kennen. es kann durchaus auch mehr als ein controller sein, macht sogar sinn, denke ich. der view kennt kein model!

schau dir zum allgemeinen verständnis auch mal das MVC bei der wiki an.
ich denke es ist so am besten, dass du view und controller in den presentation layer packst. die controller der gui komponenten greifen dann zb über eine fassade auf das modell zu.

grüße
 
G

Guest

Gast
Ich würde das Vorgehen außerdem von der Größe bzw. Komplexität der Anwendung abhängig machen.

Im besten Fall sind View, Controller und Model komplett voneinander getrennt. Nur der Controller kennt View und Model, der Rest ist sich unbekannt:
- Als Controller könnte ein Listener dienen (z.B. abgeleitet von ActionListener). Ihm wird im Konstruktor z.B. ein Frame übergeben. Dort erfolgt auch die Registrierung des Listeners an der GUI-Komponente. So erfährt die GUI-Klasse nichts von seinem Controller
- Das Model wirft grundsätzlich Exceptions weiter und behandelt sie nicht. Das Exception-Handling ist Bestandteil des Controllers. Auf diese Weise kann man realisieren, dass auch das Model den Controller nicht kennt. Der Controller ruft das Model auf und erwartet ggf. ein Ergebnis oder eine Ausnahme und entscheidet über weiteres Vorgehen
- Der Controller übernimmt die Aufgabe der Datenbereitstellung in der View, weist also ggf. eine Bean zur Darstellung zu.

Auf diese Weise sind GUI-Klassen und der Model-Komplex unabhängige Module. Der Controller kapselt die Beziehungen zwischen den Beiden und sollte auch nichts anderes tun.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Meinung zum verwendeten Design Pattern Allgemeine Java-Themen 4
M OOP Design Pattern - "extends Observable implements Observer" Allgemeine Java-Themen 0
perlenfischer1984 Welches Design Pattern ist geegneit. Allgemeine Java-Themen 7
perlenfischer1984 Hilfe bei Design (Pattern) Allgemeine Java-Themen 5
D OOP Design Pattern für GUI - Datenbank Anwendung Allgemeine Java-Themen 1
F Welches Design Pattern? Allgemeine Java-Themen 3
D [Drag&Drop] Design-Pattern-Frage Allgemeine Java-Themen 4
ruutaiokwu welches design pattern? frage an die oo-experten unter euch... Allgemeine Java-Themen 3
G Accordion Design Pattern Frage Allgemeine Java-Themen 2
hdi Hilfe beim Design (Stichwort OO, Pattern, ...) Allgemeine Java-Themen 11
N Welches design pattern? Allgemeine Java-Themen 8
G Composite, Design Pattern, printTree Allgemeine Java-Themen 42
F Design Pattern zur Realisierung von Mehrfachvererbung? Allgemeine Java-Themen 8
D Design Pattern: Singleton Allgemeine Java-Themen 4
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
S ArrayList Design Allgemeine Java-Themen 4
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
Kirby.exe Framework für Game Design Allgemeine Java-Themen 8
C WindowBuilder Design funktioniert nicht Allgemeine Java-Themen 0
M Diverse Design-Fragen Allgemeine Java-Themen 6
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
T OOP Fehler im Design Allgemeine Java-Themen 9
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
R Parameter Adapter - Design Allgemeine Java-Themen 1
D Bezüglich Design meines Codes Allgemeine Java-Themen 1
S Java Design Frage Allgemeine Java-Themen 10
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
P Auf die Anzahl der Joins achten beim WS design Allgemeine Java-Themen 1
M OOP Design Frage Allgemeine Java-Themen 2
J Domain Driven Design - Modellierungsfrage Allgemeine Java-Themen 3
H MVC Design Allgemeine Java-Themen 9
J Swing Eigenes Button-design Allgemeine Java-Themen 2
Q Kapselung Allgemeine Design- Frage Allgemeine Java-Themen 8
Z Design um boolsche ausdrücke zu speichern & auszuwerten Allgemeine Java-Themen 3
A Sinnvolles Software Design bei Eigenschaftsänderungen von Objekten Allgemeine Java-Themen 7
C Gutes Code Design (3 Schichten Modell) Allgemeine Java-Themen 19
D Design Stations-Gitter Allgemeine Java-Themen 4
M Public Static importRunning -> Bad Design oder ok ? Allgemeine Java-Themen 5
L Software-Design: Kommunikation mit SerialPort (RXTX) Allgemeine Java-Themen 2
G Design Patterns für Programm Allgemeine Java-Themen 3
I Wie populär ist Design by Contract in Java und was haltet ihr davon? Allgemeine Java-Themen 5
Landei Design-Problem Formel-Parser Allgemeine Java-Themen 10
J Aktionen im State-Design-Modell Allgemeine Java-Themen 3
S Design Oberfläche Allgemeine Java-Themen 2
L Design-Frage: Platzierung der Save-Methode Allgemeine Java-Themen 3
G Domain Driven Design Model Allgemeine Java-Themen 14
G konkretes Domain Driven Design Aggregate Allgemeine Java-Themen 2
B Design Problem Allgemeine Java-Themen 8
faulelotte Verständnisproblem Domain Driven Design Allgemeine Java-Themen 3
S Frage zum Design der Datenstruktur Allgemeine Java-Themen 10
D design gesucht - Angabe von zu ersetzenden substrings Allgemeine Java-Themen 2
D Design ohne Getter und Setter Allgemeine Java-Themen 8
D Design: on-the-fly-Parsing + Datenstrukturen Allgemeine Java-Themen 5
D design client server Allgemeine Java-Themen 10
T Design-Frage Allgemeine Java-Themen 14
S XML-Parsing / public-Member-Variablen / Design-Frage Allgemeine Java-Themen 8
S JToolBar Design Allgemeine Java-Themen 3
M Bildersyncronisierung - Design Patterns? Allgemeine Java-Themen 2
T Design - Exception in Thread Allgemeine Java-Themen 3
N Design-Frage: persistent machen per Reflection Allgemeine Java-Themen 3
M Frage zum Design :: allgemein Allgemeine Java-Themen 6
U Frage zu DB Design Allgemeine Java-Themen 3
K Design / Implementierung Allgemeine Java-Themen 5
N Checkstyle - Design for Extension Allgemeine Java-Themen 4
E Was ist ein gutes Design fuer meine Programm? Allgemeine Java-Themen 3
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
P Apple Design Allgemeine Java-Themen 5
S design frage Allgemeine Java-Themen 10
T Design-Tipp gesucht Allgemeine Java-Themen 2
M Design von Java Klassen Allgemeine Java-Themen 2
G java design von klassen und projekten Allgemeine Java-Themen 6
K Design: Klassen in Pakete aufteilen - Eure Meinung Allgemeine Java-Themen 8
S Programmierstil / design Allgemeine Java-Themen 9
S Exception design Allgemeine Java-Themen 2
m@nu Exception-Design Allgemeine Java-Themen 4
R Design-Frage Allgemeine Java-Themen 9
N Hilfe beim Design Allgemeine Java-Themen 13
Torres Design-Problem mit Jakarta Struts Allgemeine Java-Themen 2
A Anwendungs-Design (Plugin-Architektur) Allgemeine Java-Themen 4
mihe7 equals und instanceOf pattern matching Allgemeine Java-Themen 9
L Pattern Eventhandler Allgemeine Java-Themen 5
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Z MVC Pattern - sinnvolle Integration Allgemeine Java-Themen 6
Kirby.exe Filename nach bestimmtem Pattern durchsuchen Allgemeine Java-Themen 5
Meeresgott Best Practice "Spezifisches" Factory Pattern ? Allgemeine Java-Themen 1
H Strategy Pattern - changeColor() Methode - input rgd oder hex einlesen Allgemeine Java-Themen 1
M Vaadin MVP Pattern Allgemeine Java-Themen 1
N Java MVC Pattern richtig anwenden Allgemeine Java-Themen 24
K Factory Pattern: Mit Generics umgehen Allgemeine Java-Themen 6
J Compilerfehler bis in java.util.regex.Pattern... Allgemeine Java-Themen 2
B MVC-Pattern größeres Beispiel Allgemeine Java-Themen 16
GreenTeaYT Verstehe nicht ganz das Observer Pattern in einer Arrayliste? Allgemeine Java-Themen 3
L Erste Schritte Java Date Format Pattern bestimmten Allgemeine Java-Themen 2
D Pattern mit Pattern vergleichen Allgemeine Java-Themen 3
S Hilfe bei geeignetem Pattern (Decorierer) Allgemeine Java-Themen 2
J Pattern aus String entfernen Allgemeine Java-Themen 2
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
D Variablen zur Laufzeit global speichern (Registry Pattern?) Allgemeine Java-Themen 6
Rudolf State Pattern als Enum? Allgemeine Java-Themen 10
M massenhaft verschiedene Date-Pattern Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben