Große Klasse - was fällt euch so ins Auge? Kritik bitte!

Status
Nicht offen für weitere Antworten.

dyn

Mitglied
Hi, habe in den Code-Snippets eine große Klasse von mir gepostet, die ein Glücksradspiel simuliert.
Hier www.java-forum.org/de/viewtopic.php?t=23928
findet ihr sie.

Ich bitte euch einmal den Code durchzugehen und mal zu schreiben, was euch so auffällt.
Ich bitte um konstruktive Kritik am Code, damit ich ihn verbessern bzw. verkleinern kann.

Zeile 478 - 514 z.b. finde ich ziemlich lang. Würde es sinn das ganze in eine for-Schleife zu packen?

290 - 351: Die Methode soll die Kontostände der drei Spieler vergleichen und den größten rausfinden.
Das wäre kein Problem gewesen. Jetzt muss man ja aber noch berücksichtigen, was passieren soll, wenn 2 oder mehr Spieler den gleichen Kontostand haben. Ich hab das irgendwie nicht hinbekommen, war aber auch schon spät.
Bitte um nen kleinen Denkanstoß, aber bitte keine fertige Lösung, wills mir nicht zu einfach machen!

Danke für eure Aufmerksamkeit!
 
B

bygones

Gast
dyn hat gesagt.:
Zeile 478 - 514 z.b. finde ich ziemlich lang. Würde es sinn das ganze in eine for-Schleife zu packen?
sorry, aber alleine diese Zeile hier schreckte mich davon ab, den Code mir genauer anzuschauen. über 500 Zeilen für eine Klasse find ich schon ziemlich hart. Mein erster Tipp, versuch deinen Code besser zu trennen. Lieber ein, zwei Klassen mehr, die dafür übersichtlicher und somit verständlicher....
 

DreamArtist

Bekanntes Mitglied
Würde generell versuchen das ganze ins MVC - Konzept zu gliedern.
Verschafft einen besseren Überblick und bringt eine Struktur in das Ganze.
 

Mag1c

Top Contributor
Moin,

genau, und jetzt das ganze auf OOP ;)

bei diesem Projekt läßt sich sehr schön das Konzept der OOP umsetzen. Eine Klasse für den Spieler, eine Klasse für das Glücksrad und eine Klasse für die GUI. (evtl. noch eine Klasse für den Spielablauf). Damit sollte das ganze wesentlich übersichtlicher werden und du kannst vor allem in nullkommanix 20 Spieler mitspielen lassen.

Gruß
Mag1c
 

Bleiglanz

Gesperrter Benutzer
478-514: mach lieber eine Lookuptable (Map) draus

Spieler1 Spieler2 Spieler3: sowas ist ganz furchtbar, dein Programm wäre wahrscheinlich kürzer und besser wenn du gleich n Spieler unterstützen würdest...

leider sind fast alle Kommentare "sinnlos", erklärt wird meistens nichts
Code:
                // Buttons werden wieder aktiviert.
                gluecksradinteraktion.aktiviereButtons();
Stichwort: kommentiere WIE etwas gemacht wird, nicht WAS

Hauptkritik: das ganze ist einfach zu lang, man soll nicht alles in eine einzige Klasse packen! Auch die Methoden sind teilweise zu lang.

IMHO wär das ganze jetzt eine gute Gelegenheit, die Refactoring Funktionen deiner IDE zu lernen :)
 

Sky

Top Contributor
Also, ein Glücksrad sollte aus mehr als einer Klasse bestehen:

z.B.:
- eine grafische Komponente
- eine Klasse "Spieler"
- eine Klasse für Frage/Antwort
- Eine Klasse, die Spieler und/oder Runden verwaltet

Und schon wird's ein bißchen übersichtlicher
 

dyn

Mitglied
habe ja schon mehrere klassen. das problem ist aber dass es gerade durch mehrere klassen unübersichtlicher wird.
ich habe bereits 12 klassen insgesamt...naja ich guck nomma durch was ich so ändern kann..
 

Sky

Top Contributor
dyn hat gesagt.:
habe ja schon mehrere klassen. das problem ist aber dass es gerade durch mehrere klassen unübersichtlicher wird.
ich habe bereits 12 klassen insgesamt...naja ich guck nomma durch was ich so ändern kann..
Wieso dass denn ? Werd mal bitte konkreter...
 
B

bygones

Gast
dyn hat gesagt.:
habe ja schon mehrere klassen. das problem ist aber dass es gerade durch mehrere klassen unübersichtlicher wird.
ich habe bereits 12 klassen insgesamt...naja ich guck nomma durch was ich so ändern kann..
wenn du es schaffst die Klassen logisch zu trennen sollte eben dies nicht geschehen....

Einfach so einen große Klasse zu zerstückeln ist natürlich kontraproduktiv...

was natürlich verständlich ist, wenn du ohne IDE arbeitest und dann 12 Files offen hast - aber das hat nichts mit der Übersicht der struktur zu tun....
 

dyn

Mitglied
ja...ich habe bereits eine spieler-klasse. dann habe ich für jedes panel das in der gui angezeigt wird eine eigene klasse angelegt.
ausserdem habe ich eine klasse spielabfolge in der die spieler initialisiert werden und die methode drin ist die bestimmt wer dran ist usw.
ich hatte das schonmal aufgeteilt in RATEN und PRUEFEN.
habs dann aber wieder rückgängig gemacht.

deathbyaclown hat gesagt.:
Einfach so einen große Klasse zu zerstückeln ist natürlich kontraproduktiv...

da geb ich dir recht. war auch ein fehler. es sei mir aber nach meinem ersten java-semester verziehen, wo ich mir aufgrund der mangelnden materialien der vorlesung so ziemlich alles selbst beibringen musste.
 
B

bygones

Gast
dyn hat gesagt.:
deathbyaclown hat gesagt.:
Einfach so einen große Klasse zu zerstückeln ist natürlich kontraproduktiv...

da geb ich dir recht. war auch ein fehler. es sei mir aber nach meinem ersten java-semester verziehen, wo ich mir aufgrund der mangelnden materialien der vorlesung so ziemlich alles selbst beibringen musste.
glaub mir am anfang ist das logische Trennung von Klassen verdammt schwer. Meine ersten Programme bestanden auch aus 1000Zeilen Klassen... man lernt nach ner Zeit wie man was am besten trennt....

so keep on going :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Welcher Datentyp für sehr große Zahlenbereiche? Allgemeine Java-Themen 1
F Große Datenmengen effizient programmieren Allgemeine Java-Themen 51
N Das große O berechnen Allgemeine Java-Themen 2
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
R Große Zahlen in Worten abkürzen Allgemeine Java-Themen 10
K Große JSON-Dateien schnell und effizient verarbeiten Allgemeine Java-Themen 16
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
P Große Datenstruktur im Speicher halten Allgemeine Java-Themen 13
M Einfluss von Caching auf die Performance (große Arrays) Allgemeine Java-Themen 24
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
P Datentypen Große Datenmenge Sortiert halten Allgemeine Java-Themen 12
D große Textdatei filtern Allgemeine Java-Themen 13
M Große Datei mit Regex durchsuchen Allgemeine Java-Themen 4
R POI große Exceldatei schreiben Allgemeine Java-Themen 7
R Dateigestützte Collection für große Datenmengen Allgemeine Java-Themen 5
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
trash Das große Problem: .jar Archiv Allgemeine Java-Themen 19
J Große Datei einlesen und gestückelt verarbeiten Allgemeine Java-Themen 4
I Große Datei am effektivsten/performantesten auslesen und auswerten? Allgemeine Java-Themen 6
S große CSV-Dateien Importieren. Beste Lösung ?! AWS,S3,Hadoop!? Allgemeine Java-Themen 4
P große double Zahlen und modulo Allgemeine Java-Themen 8
O Große Anzahl Bilder laden Allgemeine Java-Themen 7
A Mit RegEx große Dokumente erfassen Allgemeine Java-Themen 14
X Wie verdammt große Datein öffnen? Allgemeine Java-Themen 2
G Große Datenmengen per JDBC Allgemeine Java-Themen 5
P Große Datenmenge wie speichern (HashMap? TreeMap?) Allgemeine Java-Themen 11
G Große XML-Dateien einlesen und auswerten . Allgemeine Java-Themen 2
P Performance: Ziehen ohne Zurücklegen (große Datenmenge) Allgemeine Java-Themen 10
I JNI - Große Daten übertragen Allgemeine Java-Themen 6
T Große Dateibestände löschen - Speicherproblem Allgemeine Java-Themen 20
S Große ArrayListen Allgemeine Java-Themen 8
S große Datei einlesen! Allgemeine Java-Themen 7
J Große Zahl (double) as text ausgeben? Allgemeine Java-Themen 2
S Kleines Eclipse Problem, große Wirkung Allgemeine Java-Themen 7
H Referenzen statt Objekte für große Speicherstrukturen Allgemeine Java-Themen 19
K Große Herausforderung Allgemeine Java-Themen 2
F Zu große Werte beim byteweisen Lesen mit BufferedReader.read Allgemeine Java-Themen 5
M Große Dateien laden Allgemeine Java-Themen 2
F Große Dateien schnell einlesen Allgemeine Java-Themen 14
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
Neoline Klassen Singleton Klasse buchmanager Allgemeine Java-Themen 19
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben