Grundsätzliche Frage zur OOP bzw. zum MVC

Status
Nicht offen für weitere Antworten.

CarloC

Bekanntes Mitglied
Hallo zusammen,

ich habe eine grundsätzliche Frage zur OOP bzw. zum MVC.

Angenommen ich habe eine View und über den Controller (in diesem Fall actionPerformed()) rufe ich mein Model auf. Ist es dann sinnvoll z.B. einen Vector, ein Frame usw. zu übergeben, wenn ich mit diesen arbeiten muss? Oder sollte man in diesem Fall im actionPerformed() weiter arbeiten, ohne das eigentliche model auszugliedern?

Für mich stellt sich die Frage ob es die Performance beeinflusst wenn ich einige Objekte an das Model übergebe oder ob das keine Auswirkungen hat. Die Variablen als public zu deklarieren ist ja, so wie ich es verstanden habe, auch nicht gerade die feine Art. Wie macht man es also richtig?

Vielen Dank für die Hilfe
 

byte

Top Contributor
Oder sollte man in diesem Fall im actionPerformed() weiter arbeiten, ohne das eigentliche model auszugliedern?

Was meinst Du mit ausgliedern? Die actionPerformed() könnte einen entsprechenden Aufruf im Modell machen, der Daten liefert (z.B. einen Vector) und sollte diesen dann auch direkt in der View darstellen.

Auswirkungen auf die Performance hat das MVC Prinzip nicht. Der Grund, warum man Model und View durch einen Controller trennen will, ist vielmehr der Kapselungsgedanke oder in einigen Büchern auch lose Kopplung genannt. Man möchte Model und View trennen, so dass diese beiden Subsysteme unabhängig voneinander und austauschbar sind. Dann könnte man z.B. später eine neue View schreiben, das Modell aber unverändert beibehalten.

Du solltest als Anfänger erstmal primär darauf achten, dass vor allem im Modell nichts von der View oder dem Controller drin vorkommt, so dass auf jeden Fall erstmal das Modell unabhängig und wiederverwendbar ist. View und Controller können durchaus auch mal das gleiche sein.
 

CarloC

Bekanntes Mitglied
Danke für die Antwort.

Hier ist nochmal ein Beispiel worauf sich meine Frage gut übertragen lässt:

Code:
public void actionPerformed(ActionEvent arg0)
{
	Object aktion = arg0.getSource();
		
	if (aktion == btnHinzufuegen)
	{
		new OrgEinheitHinzufuegen(model, gkz, daten);
	}
}

Der Controller ist, wenn ich es richtig verstanden habe, ja die Methode actionPerformed() (zumindest in meinem Beispiel). In dieser bilde ich nun ein Objekt von der Klasse OrgEinheitHinzufuegen. Diese macht dann den Insert in die Datenbank, etc. OrgEinheitHinzufuegen wäre dann mein Model (richtig?).

Nun die eigentliche Frage: Ist es in Ordnung wenn ich der Klasse OrgEinheitHinzufuegen solch "mächtige" Parameter übergebe? (model ist z.B. mein JTableModel und daten ein Vector mit Objekten).

Vielleicht ist die Frage etwas absurd. Aber für mich als Anfänger macht es den Eindruck als würde ich so riesige Datenpakete durch die Klassen jagen. Wenn das so in Ordnung ist soll es mir aber auch recht sein.
 

alehandro

Mitglied
patr1k hat gesagt.:
Nun die eigentliche Frage: Ist es in Ordnung wenn ich der Klasse OrgEinheitHinzufuegen solch "mächtige" Parameter übergebe? (model ist z.B. mein JTableModel und daten ein Vector mit Objekten).

es ist vollkommen ok.
Du "jagst" nur Referenzen "durch die Klassen"
 

A.T.

Bekanntes Mitglied
patr1k hat gesagt.:
Für mich stellt sich die Frage ob es die Performance beeinflusst wenn ich einige Objekte an das Model übergebe oder ob das keine Auswirkungen hat. Die Variablen als public zu deklarieren ist ja, so wie ich es verstanden habe, auch nicht gerade die feine Art. Wie macht man es also richtig?

Grundsätzlich private, aber über Getter und Setter kommst du da ja immer dran.
 

Tobias

Top Contributor
Ein Klassenname wir OrgEinheitHinzufuegen macht mir allerdings Angst, weil man da befürchten muss, dass du OOP im Grundsatz noch nicht verstanden hast. Eine Klasse beschreibt eine Sache, keine Aktion!

mpG
Tobias
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C SOLID Single Responsibility Priciple Frage Softwareentwicklung 2
K Frage OOP Softwareentwicklung 8
dgtKotlin Frage zu Kotlin source code Softwareentwicklung 5
A Frage zu testdriven developement Softwareentwicklung 1
H Regex Frage Softwareentwicklung 2
D Frage Schichtenarchitektur Softwareentwicklung 3
T Frage bezüglich MVC Softwareentwicklung 1
Shams Frage wegen guava-Eventbus. Softwareentwicklung 0
B Frage zu Schnittstellen (lose Kopplung) Softwareentwicklung 5
H Frage zur Stanford NLP-API Softwareentwicklung 2
E Frage zu Dekorator-Pattern Softwareentwicklung 2
O Frage zu Regulärer Ausdruck Softwareentwicklung 3
H WEKA - Frage zu Methode in Evaluation Softwareentwicklung 2
S Frage zu Zusicherungen: Softwareentwicklung 12
D Frage zu String Algorithmen / String Metric Softwareentwicklung 7
Airwolf89 Theoretische Frage - In Java Java-Programme schreiben Softwareentwicklung 5
D Frage zur Objektorientierung mit Interfaces Softwareentwicklung 9
B Theoretische Informatik Frage zu Formalismus RegExp Softwareentwicklung 12
Wepster LGPL, MPL Frage Softwareentwicklung 3
D Frage zur Benutzeroberflächenprogrammierung Softwareentwicklung 8
D Frage zu Klassendiagramm und Konstruktor (UML) Softwareentwicklung 3
M [OOP] Frage zu Methode-Namen / Funktionsweise Softwareentwicklung 9
P Frage zu Processing Softwareentwicklung 9
S Regex Frage Softwareentwicklung 4
D Frage zu meiner Vorgehensweise in einem Projekt Softwareentwicklung 5
A Frage zu GPL Softwareentwicklung 3
K Frage zu UML Aktivitätsdiagramm Softwareentwicklung 3
J Frage zu Lizenzrechten Softwareentwicklung 5
B bash frage Softwareentwicklung 6
F allgemeine exe frage Softwareentwicklung 10
G Frage zur LGPL? Softwareentwicklung 5
0x7F800000 "Wozu ist denn CSS / CSS2 gut" Dumme Frage? Softwareentwicklung 9
G Frage zur UML Softwareentwicklung 2
B Ajax Frage Softwareentwicklung 2
J Frage zu Relation Softwareentwicklung 2
W Frage zu a)Innere Klassen und b)OO Design Softwareentwicklung 13
G MVC Frage Softwareentwicklung 4
P Frage zu Prolog! Softwareentwicklung 7
E Frage zu Excel und Filtern Softwareentwicklung 4
Y OpenGL/C Frage - externe Funktionen Softwareentwicklung 5
G C# Frage Softwareentwicklung 12
T SQL, Feld mehrmals abfragen, IN Frage Softwareentwicklung 3
RaoulDuke Frage zu Datenmodel / Zugriff Softwareentwicklung 5
J Frage zu C Softwareentwicklung 2
H Frage ueber Prototype Pattern? Softwareentwicklung 2
L Noch 'ne Perl-Frage. Kehre dann auch reumütig zu Java zurück Softwareentwicklung 10
S Design-Frage: Wie viele Fassaden? Softwareentwicklung 4
J Frage zu MVC, Swing, Gui Softwareentwicklung 3
L Frage zu Beziehungen zwischen Klassen und UML Softwareentwicklung 10
T Frage zu Mysql Softwareentwicklung 3
C Mysql-Frage(Problem mit nicht durchgeführten Zugriff) Softwareentwicklung 5

Ähnliche Java Themen

Neue Themen


Oben