Datentypen Statistik Interface - untersch. Implementierung

BinaryLogic

Mitglied
Moin liebe Community,

ich habe mehr oder weniger eine Frage bzgl. geeigneter Datentypen zu folgendem

Problem:
Ich habe ein Spiel Interface und verschiedene Spiele, welche sozusagen in einer Applikation gestartet werden können. Die Applikation weiß nur, dass es ein Spiel ist und mit welcher Methode es gestartet wird. Nun will ich in der Applikationsoberfläche eine Statistik zu dem Spiel anzeigen lassen.
Dafür würde ich auch gerne ein Interface Statistik nehmen. Ein Spieler hat also eine Liste mit unterschiedlichen Statistiken.
Aber, je nach Spiel sieht die Statistik anders aus, mal ist sie definiert durch Gewonnen/Verloren, Punkte oder Zeit. Wie soll ich das am Besten im Spieler ablegen, bzw. durch die Applikation ansprechen?

Lösungsansatz:
Also ich würde sagen, ich verschachtel zwei Datentypen. Ich nehme mir also eine HashMap o.ä. und habe den Schlüssel (Spielname als String oder eine ID) und der Wert selber ist z.B. eine Liste von Strings, die z.B. so lauten: {"Gewonnen: 5", "Verloren: 7"} oder nur {"Zeit: 320s"}.

Fragen:

Ist das ein guter Ansatz? Oder sollte ich die ganze Interface-Sache allgemein lassen? Gibt es bessere und effizientere Datenstrukturen als eine HashMap für dieses Problem?

Bedanke mich jetzt schon für Antworten.

Grüße
BL
 
B

bygones

Gast
kannst du nicht das Interface generell halten mit einer Methode ala "zeichneDich", d.h. die Implementierung baut seine eigene Statistik ?!
 

Michael...

Top Contributor
Entweder Du definierst einfach nur eine Methode mit der das Spiel seine Statistik selbst zeichnet.
Oder je nach dem wie komplex die Statistiken werden solle, könnte man diese auch per XML zur Verfügung stellen.
 

BinaryLogic

Mitglied
@bygones:
Du meinst also, ich baue eine Art Statistik-Schnittstelle, die sagen wir die Eigenschaften eines JPanels hat und in die Applikation mit eingebunden wird, wenn dies nötig ist?
Das wäre bestimmt eine Alternative, aber die Statistik wird u.a. auch persistent gemacht, dass wollte ich also eigentlich eher differenzieren.
Zweites Problem ist, dass meine Statistik dann gezwungenermaßen zwei Aufgaben hat Darstellung (bzw. Verwaltung der Darstellung) und interne Verwaltung (Statistik, die sich ja mit jedem Spiel aktualisiert wird).

Aber ich denk mal kurz drüber nach, wie man das gut umsetzen könnte. Ich meine das Panel muss nicht groß anders aussehen als:

Spiel: <Name>
Gewonnen: <Anzahl>
Verloren: <Anzahl>
Zeit: <Zeit>
...

@Michael...
Den Text oben, hab ich geschrieben und dann ist erst deine Nachricht eingetrudelt.
Also deine erste Idee, würde ja der von bygones entsprechen.
Wie man oben sieht, wird diese Statistik nicht sehr komplex. Ich denke max. sechs verschiedene Variablen, da eventuell noch die Gewinn/Verlust-Rate gespeichert wird um diese nicht immer neu berechnen zu müssen. Das könnte ich dann ja relativ simpel mit XStream auslagern und muss nicht mit DOM o.ä. rumexperimentieren, da sich mein Wissen dort noch sehr im Anfangsstadium befindet.

@beide:
Ich denke, da muss ich meine Prinzipien mal ein bisschen über Board werfen um es nicht zu komplex zu machen und jede Statistik soll sich selbst zeichnen.
Der Thread bleibt erstmal offen, vielleicht hat jemand noch ein paar nützliche Ideen, währenddessen denk ich schon einmal ein bisschen drüber nach.

Vielen Dank erstmal. :toll:
BL
 
B

bygones

Gast
@bygones:
Du meinst also, ich baue eine Art Statistik-Schnittstelle, die sagen wir die Eigenschaften eines JPanels hat und in die Applikation mit eingebunden wird, wenn dies nötig ist?
Das wäre bestimmt eine Alternative, aber die Statistik wird u.a. auch persistent gemacht, dass wollte ich also eigentlich eher differenzieren.
du solltest auch nicht in das Logik Interface der Statistik UI Logik einbinden. Eine moeglichkeit waere, dass jeder der ein Spiel bereitstellen muss dir beides ueber Interfaces bereitzustellen. D.h. die Statistik an sich und eine Art diese zu rendern.

Zweites Problem ist, dass meine Statistik dann gezwungenermaßen zwei Aufgaben hat Darstellung (bzw. Verwaltung der Darstellung) und interne Verwaltung (Statistik, die sich ja mit jedem Spiel aktualisiert wird).
womit man sieht, dass ein Interface hierfuer nicht ausreicht.

Wenn du eine Art Plugin machst kann diese sich bei deiner Applikation anmelden. Es stellt (wie auch immer) die statistik schnittstelle sowie ein Rendering zur verfuegung.
Es ist anzunehmen, dass ein Spiel noch mehr bereitstellen muss, daher waere es sinnvoll von anfang an ein offenes Design sich zu ueberlegen.

Wie man oben sieht, wird diese Statistik nicht sehr komplex. Ich denke max. sechs verschiedene Variablen, da eventuell noch die Gewinn/Verlust-Rate gespeichert wird um diese nicht immer neu berechnen zu müssen. Das könnte ich dann ja relativ simpel mit XStream auslagern und muss nicht mit DOM o.ä. rumexperimentieren, da sich mein Wissen dort noch sehr im Anfangsstadium befindet.
wenn es wirklich ein simples KEY -> WERT system ist kannst du natuerlich auch versuchen das generisch zu loesen und dir von dem Spiel einfach ein "Statistik Objekt" geben (was vll intern nur eine Map ist) und iterierst ueber alle Keys und zeigst die dann wie auch immer in der Applikation an.
Wichtig waere heir nur, dass du nicht direkt die Map ins Interface nimmst, um flexibel zu bleiben
 

BinaryLogic

Mitglied
Ja, dann muss ich mir das "große Ganze" noch einmal ansehen.
Aber bei der Statistik bin ich halt gerade hängen geblieben, weil ich mich gefragt habe, wie ich das am
Besten in die Applikation einbinde.
Und wie schon gesagt, am Ende wird es sehr wahrscheinlich mehrere Spiele geben, die je nachdem welches man startet in einem Panel angezeigt werden. Die Statistiken und evtl. Highscores haben eine unterschiedliche Darstellung. So ein Problem hatte ich bis jetzt noch nicht, deswegen muss ich mir mal überlegen, wie ich das ordentlich modelliere.


Jetzt habe ich gerade eine kleine Idee.
Ich könnte doch die Methode an eine Art Factory leiten, die je nachdem welches Spiel ausgeführt wird einen Algorithmus zum rendern bereitstellt, der eben auf dieses Spiel ausgelagert ist, der Factory wird halt gesagt, welches Spiel es ist und bekommt die Statistik-Informationen übermittelt. Und die Factory weiß, wie sie damit umgehen muss.
Ich habe also eine Art Factory zwischen der UI-Klasse und der Statistik-Klasse.

Kann man das so machen, wäre das sinnvoll?

Grüße
BL

PS: Einziger Nachteil ist natürlich beim ändern der Datenstruktur in der Statistik, dass der Algorithmus zum rendern geändert werden muss.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Statistik aus ArrayList Java Basics - Anfänger-Themen 2
D Würfel mit Statistik Java Basics - Anfänger-Themen 8
S Java Programm Statistik Wuerfeln Java Basics - Anfänger-Themen 19
A Formel 1 Statistik Programm Java Basics - Anfänger-Themen 2
S Wo gibts Statistik! Java Basics - Anfänger-Themen 3
W Statistik Java Basics - Anfänger-Themen 25
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Abstrakt oder Interface Java Basics - Anfänger-Themen 3
Say public/default Interface Java Basics - Anfänger-Themen 9
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
J Interface Comparable<T> Java Basics - Anfänger-Themen 10
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
D Interface Verständisfrage Java Basics - Anfänger-Themen 8
U Interface | constructor injection Java Basics - Anfänger-Themen 5
J Interface Interface korrekt implementieren Java Basics - Anfänger-Themen 5
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
T Interface Map und Map.Entry Java Basics - Anfänger-Themen 4
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
I JSON und Interface Java Basics - Anfänger-Themen 3
Kotelettklopfer Kleines Testprogramm mit Interface und einer Usereingabe Java Basics - Anfänger-Themen 16
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
L Interface & Comparable Java Basics - Anfänger-Themen 15
T Interface Java Basics - Anfänger-Themen 0
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
H Interface Java Basics - Anfänger-Themen 2
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
T Vererbung Interface Java Basics - Anfänger-Themen 5
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
B Erste Schritte Wie definiere ich in Java ein Interface? Java Basics - Anfänger-Themen 6
L OOP Interface Prinzip? Java Basics - Anfänger-Themen 6
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
A Frage zu Interface Java Basics - Anfänger-Themen 16
J Interface Java Basics - Anfänger-Themen 3
W Interface Java Basics - Anfänger-Themen 1
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
Shams Kann man von einem Interface aus auf die dieses implementierende Klasse zugreifen? Java Basics - Anfänger-Themen 4
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
J Frage zu dem Thema interface Java Basics - Anfänger-Themen 5
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
S Interface-Methode abrufen? Java Basics - Anfänger-Themen 2
P Vererbung Klasse erbt von abstrakter Klasse implementiert Interface Java Basics - Anfänger-Themen 2
M Konstanten in einem Interface definieren Java Basics - Anfänger-Themen 1
P interface Java Basics - Anfänger-Themen 1
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben