Hallo,
ich setzte mich gerade intensive mit OOP und Java auseinander und habe noch eine paar Verständnisprobleme bei Strukturierung. Ich hoffe hier ein paar Tipps und Denkanstöße zu finden, wie ich die nachstehende Probleme am geeignesten Lösen kann. Ich habe auch schon mehrere Tuts und Bücher zu dem Thema gelesen, jedoch sind die Beispiele alle auf einem sehr niedrigen level und konnten mir daher nicht weiterhelfen.
Als Projekt habe ein Verwaltungstool für unsere Basketball-Liga gewählt. Folgende Ausgangssituation habe ich dabei:
Es gibt grob gesehen 2 Objekte:
Das Heimteam und Auswärtsteam sind jeweils von der Klasse Mannschaft. Bei der Erzeugung es Spielobjekts werden die Mannschaften übergeben.
Falls das so korrekt ist, dann habe ich folgende Situation:
1. Frage
Wenn ich alle Spiele aus der Datenbank in meine Programm laden will, dann erzeuge ich erst mein Spiel, danach die beiden Mannschaften und übergebe diese an mein Spiel. Wie kann ich sich sein, dass ich nicht ein Team erzeuge was schon existiert Bzw. wie finde ich eine Mannschaft, die schon als Objekt existiert? Bisher nutze ich ein statisches Array[pos] von der klasse Mannschaft, welche ich als pos die ID mitgebe. Das Array ist jedoch statisch, dh ich muss voher schon wissen wieviel datensätze aus der Datenbank kommen. Gibt es hierfür noch eine elegantere Lösung?
In einer Hauptklasse möchte ich mir alle spiel aus der DB anzeigen lassen:
2. Frage: Wie löse ich die Kommunikation (write/read) mit der Datenbank?
Frage 3: Wie verhält sich das mit den Statistiken
Wird hierfür eine erweiterte Klasse gebildet (z.b. Statistik), welche die Klasse erweitert? Oder ist es eine innere Klasse in Mannschaft oder eine eigenen Klasse mit Referenz auf Mannschaft bzw. Team?
Und Frage 4 zum Schluss: Wie kann ich die Objekte durchsuchen? Z.B. möchte ich mir alle Spiele anzeigen lassen, die über 100 Punkte erreicht haben, oder wieviel Fouls durchschnittlich getätigt wurden?
Es wär top wenn Ihr mir bei den Fragen weiterhelfen würdet!
Viele Grüße
Plautzer
ich setzte mich gerade intensive mit OOP und Java auseinander und habe noch eine paar Verständnisprobleme bei Strukturierung. Ich hoffe hier ein paar Tipps und Denkanstöße zu finden, wie ich die nachstehende Probleme am geeignesten Lösen kann. Ich habe auch schon mehrere Tuts und Bücher zu dem Thema gelesen, jedoch sind die Beispiele alle auf einem sehr niedrigen level und konnten mir daher nicht weiterhelfen.
Als Projekt habe ein Verwaltungstool für unsere Basketball-Liga gewählt. Folgende Ausgangssituation habe ich dabei:
Es gibt grob gesehen 2 Objekte:
- Liga
- Saison
- Spieltag
- Spiel
- Mannschaft
- Mannschaftstatistik (Punkte ,Fouls, Freethrows, Dunks, Dreier etc jeweils je Viertel)
- SpielStatistik (Punkte ,Fouls, Freethrows, Dunks, Dreier etc jeweils je Viertel)
Code:
Class Spiel{
Private integer Id;
Private Date spielDatum;
Private integer ligaID;
Private integer SpieltagID;
Private Mannschaft heimTeam;
Private Mannschaft auswaertsTeam;
Private Statistik Viertel1;
}
Class Mannschaft{
Private integer Id;
Private String Name;
}
Falls das so korrekt ist, dann habe ich folgende Situation:
1. Frage
Wenn ich alle Spiele aus der Datenbank in meine Programm laden will, dann erzeuge ich erst mein Spiel, danach die beiden Mannschaften und übergebe diese an mein Spiel. Wie kann ich sich sein, dass ich nicht ein Team erzeuge was schon existiert Bzw. wie finde ich eine Mannschaft, die schon als Objekt existiert? Bisher nutze ich ein statisches Array[pos] von der klasse Mannschaft, welche ich als pos die ID mitgebe. Das Array ist jedoch statisch, dh ich muss voher schon wissen wieviel datensätze aus der Datenbank kommen. Gibt es hierfür noch eine elegantere Lösung?
In einer Hauptklasse möchte ich mir alle spiel aus der DB anzeigen lassen:
Code:
Class ZeigeSpiele{
//Get alle Spiele aus der DB
//Zeige alles Spiele mit den Statisitken
}
2. Frage: Wie löse ich die Kommunikation (write/read) mit der Datenbank?
- Kreiert man hierfür eine Methode getallgames in der Klasse ZeigeSpiele oder in der Klasse Spiele? Es kommt mir etwas unlogisch vor, dass in der Klasse Spiele zu tun, da ich in der ZeigeSpiele erst eine Spiel erzeugen müsste, was nicht real ist um alle Spiel abzufragen. Macht das Sinn?
- Was ist generell der beste Weg in Java für das Arbeiten mit einer Datenbank? Sollte man eine Klasse SQL kreieren, welche einmal in der Klasse Zeigespiel instaziert wrid erzeugt wird und dann an die Objekte (z.b. Team, Mannschaft) übergeben wird, falls deren Daten gespeichert werden sollen?
Frage 3: Wie verhält sich das mit den Statistiken
Wird hierfür eine erweiterte Klasse gebildet (z.b. Statistik), welche die Klasse erweitert? Oder ist es eine innere Klasse in Mannschaft oder eine eigenen Klasse mit Referenz auf Mannschaft bzw. Team?
Code:
Class Statistik{
Int Punkte;
Int freethrows;
Int Dunks;
Int Dreier;
}
Class Mannschaft{
Private integer Id;
Private String Name;
Private Statistik Viertel1 = new Statistik();
Private Statistik Viertel2 = new Statistik();
Private Statistik Viertel3 = new Statistik();
}
Und Frage 4 zum Schluss: Wie kann ich die Objekte durchsuchen? Z.B. möchte ich mir alle Spiele anzeigen lassen, die über 100 Punkte erreicht haben, oder wieviel Fouls durchschnittlich getätigt wurden?
Es wär top wenn Ihr mir bei den Fragen weiterhelfen würdet!
Viele Grüße
Plautzer