Implementierung nach MVC

Status
Nicht offen für weitere Antworten.

Dutch_OnE

Mitglied
Hallo,

ich muss eine Hausarbeit nach MVC Design durchführen und bin mir nicht sicher, wo ich welche Methoden hineinschreiben muss.

Vorweg habe ich 3 Pakete (model, controller, view) erstellt.

In meinem View Paket ist eine Klasse, die den Startbildschirm der Anwendung darstellt.

Im Paket model habe ich eine Klasse Util die Methoden beinhaltet, um bestimmte Datenbankabfragen durchzuführen.

Nun habe ich auf der Startmaske eine Checkbox eingefügt, mit der ich auf diese Klasse Uitl direkt zugreife.

Nach meinem Dafürhalten verletze ich doch damit das MCV Prinzip, da ich direkt von der View aufs Model zugreife oder ?

Ich bin der Meinung das die View auf den Controller zugreift, der dann auch die DB Zugriff hat.

Wie muss denn nun meine Methode im Controller aussehen ?

So sieht meine Methode im Model aus:

Code:
	public static Vector<Integer> getAlleAngebotsNr() throws Exception {
		Vector<Integer> angbt = new Vector<Integer>();
		OracleDB db = getOracleDB();
		ResultSet rs1 = db.doQuery("select * from Artikel");
		while (rs1.next()){
			angbt.add(rs1.getInt("artikelnr"));
		}
		rs1.close();
		return angbt;
	}

Und so der bisherige Aufruf aus der View:

Code:
JComboBox cmbBoxA = new JComboBox (Util.getAlleAngebotsNr());

Wie gesagt, direkter Zugriff ist halt nicht so toll, aber wie kann man das besser machen?

gruß
dutch
 
L

lohr

Gast
Für mich gehört sowas:

JComboBox cmbBoxA = new JComboBox (Util.getAlleAngebotsNr());

Ganz klar in den Controller...Um dir jedoch weiterzuhelfen wären nen paar mehr Informationen notwendig...

PS: Doppelthreads aufzumachen steigert die unbeliebtheit ^^
 

moormaster

Top Contributor
lohr hat gesagt.:
Für mich gehört sowas:

JComboBox cmbBoxA = new JComboBox (Util.getAlleAngebotsNr());

Ganz klar in den Controller...Um dir jedoch weiterzuhelfen wären nen paar mehr Informationen notwendig...

PS: Doppelthreads aufzumachen steigert die unbeliebtheit ^^

Ich würde für das View eher eine Schnittstelle definieren, wo eine Methode existiert, die nur diese AngebotsNr-Daten entgegen nimmt.
Ob das ganze dann in eine JComboBox kommt oder nach stdout ausgegeben wird ist Sache des Views und geht den Controller gar nix an.
 
L

lohr

Gast
Wieso mit diesem Befehl:

Code:
new JComboBox (Util.getAlleAngebotsNr());

Geht es um das erstellen eines Objektes welches zum einlesen verwendet wird und nicht zum ausgeben von Information...ist natürlich nur meine ansicht und kann auch falsch sein ^^
das mit dem interface ist natürlich richtig, ich würde ein interface in beide richtung erstellen mit get und set methode und dann jeweils diese in den veschiedenen klassen implementieren somit erhält man eine schöne Architektur.

Model(Interface)---------Controller(Klasse)-----------View(Interface)
 

Dutch_OnE

Mitglied
Also das mit dem Doppenthread war keine Absicht.

Was ich eigentlich möchte ist folgendes:

Ich benötige die Checkbox um z.B. alle vorhandenen Angebote aus der Datenbank auszulesen.
Diese Daten sollen allerdings NICHT geändert werden.

Nun ist meine Frage, ob ich der Checkbox direkt als Instanzierungsparameter einen Zugriff auf die oben beschriebene Methode gebe, oder ob ich eine neue Methode im Controller machen muss, die mir das gleiche zurückgibt, was die Methode aus der Uitl eh schon tut ?

Meine Idee ist, wenn ich zum Beispiel im View mir Daten anzeige, die ich erst aufbereiten, zusammenfassen oder verändern möchte, gehör dieses in eine Klasse/Methode des Controllers.

Aber was benötige ich für meine oben beschriebenen Fall ?-
 
L

lohr

Gast
Hier mal ein kleines Beispiel dazu:

Code:
public class Controller
{ 

	private Read r;
	
	public Controller()
	{
		r = new readConsole() // Hier wird erst bestimmt von wo du lesen willst und nur noch hier geändert
		System.out.println(r.readLine());
	}
	
	public static void main(String[] args) 
	{  
		Controller c = new Controller();
	}

}

Code:
public interface Read 
{

	public String readLine();

}

Code:
public class ReadConsole implements Read 
{

	private String line = "dies ist ein test";
	
	public String readLine()
	{
		return line;
	}

}

Du könntest nun noch eine Klasse schreiben die das einlesen von nem JText... erlaubt von sonst irgendetwas und diese müssten nur das Interface Read implentieren und dadurch müsstest nur an der kommentierten Stelle eine andere klasse instanziieren und sonst nichts am quellcode ändern (außer halt eine neue klasse schreiben).
 

Dutch_OnE

Mitglied
So ganz komme ich mit der Sache noch nicht zurecht. Bisher sieht mein Aufbau wie folgt auf.

Pakete -
view - Klassen und Listener für die GUI Ausgabe
model - Verbindung zur Datenbank, Util Klasse mit verschiedenen ResultSets
controller - leer

In der GUI ist eine Methode in einer Klasse

Code:
                JComboBox cmbBoxA = new JComboBox (Util.getAlleAngebotsNr())

mit der ich direkt auf die Datenbank zugreife und mir die Daten hole.

Anbei nochmal die Methode aus der Util Klasse (model Paket):

Code:
	public static Vector<Integer> getAlleAngebotsNr() throws Exception {
		Vector<Integer> angbt = new Vector<Integer>();
		OracleDB db = getOracleDB();
		ResultSet rs1 = db.doQuery("select * from Artikel");
		while (rs1.next()){
			angbt.add(rs1.getInt("artikelnr"));
		}
		rs1.close();
		return angbt;
	}

Meine 2 Fragen:

1) Kann ich die Klasse Util nicht in die controller Schicht packen ?
2) Falls die Klasse Util definitiv zum model gehört, muss ich dann im controller eine Klasse / Methode erstellen, die auf den Rückgabetyp aus Util zugreift und ihn dann nochmal zusätzlich im view zur Verfügung stellt ?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ruutaiokwu JRE-/JDK-unabhängige PBKDF2WithHmacSHA512-Implementierung Java Basics - Anfänger-Themen 16
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
K Fehler bei der Implementierung Java Basics - Anfänger-Themen 6
J Implementierung gcd();square() Java Basics - Anfänger-Themen 98
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
G Projekt architektur (implementierung) Java Basics - Anfänger-Themen 3
M Implementierung einer getNextId Methode Java Basics - Anfänger-Themen 5
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
J Implementierung eines Zustandsdiagramms Java Basics - Anfänger-Themen 19
I GenericQueue / Implementierung als Ringspeicher Java Basics - Anfänger-Themen 4
MiMa Log4j2 implementierung Java Basics - Anfänger-Themen 4
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
G Array implementierung Java Basics - Anfänger-Themen 23
J ANTLR Installierung und Implementierung Java Basics - Anfänger-Themen 2
E Hilfe bei Implementierung von Methoden Java Basics - Anfänger-Themen 10
S SkipList Implementierung Java Basics - Anfänger-Themen 1
J Methoden Suche effiziente Implementierung für eine Methode Java Basics - Anfänger-Themen 3
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
E hashCode implementierung Java Basics - Anfänger-Themen 9
S Implementierung der Klasse Konto und Nutzung bereits vorhandener Klassen Java Basics - Anfänger-Themen 7
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
O Generics - Implementierung Java Basics - Anfänger-Themen 7
A Hilfestellung zur Implementierung des Gaußsches Eliminationsverfahren Java Basics - Anfänger-Themen 4
B OOP Implementierung eines Heaps Java Basics - Anfänger-Themen 13
K Bucketsort Implementierung Java Basics - Anfänger-Themen 0
K Mergesort Fehler in der Implementierung Java Basics - Anfänger-Themen 2
K Quicksort Fehler in der Implementierung Java Basics - Anfänger-Themen 2
S Klassen Klassendiagramm Implementierung? Java Basics - Anfänger-Themen 5
J Bucketsort Implementierung Java Basics - Anfänger-Themen 0
C Stack - listenbasierte Implementierung Java Basics - Anfänger-Themen 4
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
T Collections LinkedList<LinkedList<T>> - Implementierung Java Basics - Anfänger-Themen 10
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
D Resourcebundle implementierung Java Basics - Anfänger-Themen 2
M Implementierung des Knuth-Morris-Pratt-Algorithmus Java Basics - Anfänger-Themen 0
Q Implementierung von Listenern Java Basics - Anfänger-Themen 4
B Klassen Hilfe bei Implementierung Java Basics - Anfänger-Themen 5
N Compiler-Fehler Comparable / compareTo implementierung Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
I Erste Schritte Implementierung der API Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
M falsche implementierung von currentTimeMillis() ? Java Basics - Anfänger-Themen 14
G Implementierung eines Kontos Java Basics - Anfänger-Themen 11
M Quicksort implementierung Java Basics - Anfänger-Themen 23
SexyPenny90 Implementierung einer doubly linked list Java Basics - Anfänger-Themen 5
N Binärbaum/Implementierung Java Basics - Anfänger-Themen 9
U Doppelte Interfcae Implementierung Java Basics - Anfänger-Themen 10
K Kleiner Fehler bei Methoden Implementierung Java Basics - Anfänger-Themen 6
M Collections Problem bei Überschreibung von hashcode() und equals() bei Hashset-Implementierung Java Basics - Anfänger-Themen 5
S OOP Implementierung Komposition, Aggregation, Assoziation und Generalisierung Java Basics - Anfänger-Themen 2
C Klassenhirarchien zur Implementierung von Fahrzegen Java Basics - Anfänger-Themen 26
BinaryLogic Datentypen Statistik Interface - untersch. Implementierung Java Basics - Anfänger-Themen 5
E Performante Implementierung eines "Hintergrundprogramms" Java Basics - Anfänger-Themen 10
S Saubere Implementierung Java Basics - Anfänger-Themen 2
K Dijkstra implementierung 2.0 Java Basics - Anfänger-Themen 19
K dijskral implementierung Java Basics - Anfänger-Themen 14
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
K Game of Life Implementierung Java Basics - Anfänger-Themen 30
B OOP Problem bei Implementierung von Interface Java Basics - Anfänger-Themen 6
J HashSet Implementierung Java Basics - Anfänger-Themen 16
R NullPointerException in Queue-Implementierung Java Basics - Anfänger-Themen 11
X Frage zur Implementierung von equals() Java Basics - Anfänger-Themen 2
B Effektive Implementierung für Darstellung großer Datenmengen in Jogl Java Basics - Anfänger-Themen 5
D Datentypen Implementierung eines Binärbaumes Java Basics - Anfänger-Themen 7
B Implementierung Java Basics - Anfänger-Themen 2
N Implementierung Tic tac toc Java Basics - Anfänger-Themen 25
O Stack Implementierung als verkettete Liste Java Basics - Anfänger-Themen 8
Y Implementierung einer Potenzturm Funktion Java Basics - Anfänger-Themen 4
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
J Quicksort Implementierung-- Exception ArrayOutOfBounds Java Basics - Anfänger-Themen 6
U Implementierung Constructor Java Basics - Anfänger-Themen 7
T Problem mit Implementierung von einer HashMap aufgabe Java Basics - Anfänger-Themen 2
G Implementierung des Observer/Observable Patterns - Gut so? Java Basics - Anfänger-Themen 3
I Zugriff auf Implementierung verhindern Java Basics - Anfänger-Themen 8
B Theoretische Frage zum Programmbau (nun zur Implementierung) Java Basics - Anfänger-Themen 8
H Implementierung von Interfaces Java Basics - Anfänger-Themen 4
G Implementierung von Bäumen Java Basics - Anfänger-Themen 2
N Probleme mit paint() bei Implementierung in ein Panel Java Basics - Anfänger-Themen 4
B Wie funktioniert die implementierung von c code in Java? Java Basics - Anfänger-Themen 7
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
I Java Mail Timeout erst nach rund 5 Minuten? Java Basics - Anfänger-Themen 9
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33

Ähnliche Java Themen

Neue Themen


Oben