Best Practice Wie viele Referenzen machen Sinn? Weniger ist mehr?

A

Albus

Mitglied
Hallo Community,

ich möchte folgendes Szenario abbilden.

Ein Fahrzeug, kann auf unterschiedlichen Rennstrecken eingesetzt werden und bei unterschiedliches Wetterverhältnissen gefahren werden. Die Performance ist abhängig vom Fahrzeug, Wetter, Rennstrecke immer unterschiedlich.

Ich möchte eine Datenbank anbinden aus der die Daten stammen und die Daten als JSON-Objekte der Welt zur Verfügung stellen. Beim modellieren sind mir jedoch ein paar Dinge aufgefallen welche mich an meinem Entwurf zweifeln lassen.

Mein erster Entwurf als UML

1603708246806.png


An sich super popelig, es gibt die abstrakte Klasse Fahrzeug von der dann die konkreten Fahrzeuge erben. Zusätzlich habe ich die Klassen Rennstrecke und Wetter. Die Klasse Performance hat eine Referenz auf Fahrzeug, Wetter und Rennstrecke.

Wenn ich ein Fahrzeug ausgeben möchte sollen auch die Rennstrecken, die Wettersituationen und die dazugehörige Performance ausgegeben werden. Daher hat die Klasse Fahrzeug eine Liste an Performances.

Indirekt kann ich über Performance ermitteln, welche Rennstrecken vom Auto gefahren werden können und bei welchem Wetter ein Fahrzeug gefahren werden kann. Wäre es trotzdem sinnvoll:

- dem Fahrzeug eine zusätzliche Liste mit Wetter-Objekten zu geben bei denen es gefahren werden kann?
- dem Fahrzeug eine zusätzliche Liste mit Rennstrecken zu geben welche es befahren kann?
- der Rennstrecke eine Liste an Fahrzeugen zu geben welche auf Ihr fahren können?
- .....

oder führen zu viele Referenzen eher zu Komplikationen und ich sollte alles indirekt über Performance ermitteln.

Mein Datenmodell der Datenbank sieht wie folgt aus und ich glaube das macht einen soliden Eindruck:

1603710766159.png


Spannender ist dann wieder die JSON-Repräsentation:

Was ist hier zu bevorzugen?


Popeliges Format:
{
   "id":1,
   "name":"Trabi",
   "performance":[
      {
         "wetter":{
            "id":1,
            "name":"Sommer"
         },
         "rennstrecke":{
            "id":1,
            "name":"Hockenheim Ring"
         },
         "maxGeschwindikgeit":5,
         "rundenZeit":3,
         "verbrauch":7
      }
   ]
}

Hier müsst man dann halt wieder indirekt die passenden Strecken und möglichen Wetter ermittlen.

Oder macht ein eher "verschachteltes" Repräsentation Sinn z.B: ?

JSON:
{
   "id":1,
   "name":"Trabi",
   "rennstrecke":[
      {
         "id":1,
         "name":"Hockenheim Ring",
         "wetter":[
            {
               "id":1,
               "name":"sommer",
               "performance":{
                  "maxGeschwindigkeit":7,
                  "rundenZeit":8,
                  "verbrauch":2
               }
            }
         ]
      }
   ]
}

Das verschachtelte ist irgendwie besser lesbar, ich hab ein Array wo ich alle Rennstrecken drin hab und alle Wetter die dieses Auto auf der Rennstrecke schafft.

Also um die Frage nochmal auf den Punkt zu formulieren: "Können zusätzliche Referenzen (wenn auch unnötig) im Java-Code sinnvoll sein?. Nach welchen Kriterien sollte ich das JSON-Objekt entwerfen?

Viele Grüße
Albus
 
L

LimDul

Top Contributor
Ich hab jetzt nur kurz reingeschaut - eine Variante wäres für Json flachzuklopfen.

Also Drei Arrays (Wetter, Fahrzeuge, Performance) und die Referenzen nicht einbetten sondern nur per ID Referenzen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
T Multithreading: Wie viele Threads sollte ich erstellen? Allgemeine Java-Themen 12
Tacofan Hangman so viele Labels wie Buchstaben Allgemeine Java-Themen 5
K Variablen Konstruktor, unendlich viele Allgemeine Java-Themen 3
E Beliebig viele Worte Allgemeine Java-Themen 5
G Methoden Unterschiedliche viele Parameter Allgemeine Java-Themen 17
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
H Sehr viele Threads effizient Verwalten Allgemeine Java-Themen 13
R Arrayausgabe enthält viele Leerzeichen Allgemeine Java-Themen 4
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
C Threads Verbraucht eine Zeitabfrage viele Rechen-Ressourcen? Allgemeine Java-Themen 8
J BlueJ Methode hat zu viele Parameter Allgemeine Java-Themen 6
D (Viele) Daten performant speichern und lesen Allgemeine Java-Themen 5
S Viele zip-files zu einem kombinieren..? Allgemeine Java-Themen 3
KrokoDiehl Viele JARs und deren Resourcen Allgemeine Java-Themen 9
S Zu viele Felder. Allgemeine Java-Themen 4
S Viele Bilder -> Speicher ausgelastet? / (De-)serialisierung geht nicht mehr richtig Allgemeine Java-Themen 8
H GUI: RectangleDrawer - zu viele Elemente im Vector für die paint-Methode Allgemeine Java-Themen 6
R Moeglichst viele Datumsstrings in Date Objekte konvertieren? Allgemeine Java-Themen 3
O viele Datensätze aus Datenbank - Java Heap Space - Excepion Allgemeine Java-Themen 25
C Viele Informationen aus zwei Collections vergleichen Allgemeine Java-Themen 2
T viele Threads Allgemeine Java-Themen 14
T Designfrage: Viele, kleine Objekte Allgemeine Java-Themen 13
M Beliebig viele Typen bei Generics Allgemeine Java-Themen 3
F Viele generische Parameter sinnvoll? oder besser casten? Allgemeine Java-Themen 10
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
J Viele Fragen. =) Hoffentlich könnt ihr helfen Allgemeine Java-Themen 9
V 1 Methode für viele verschiedene Klassen? Allgemeine Java-Themen 9
S Viele Fragen eines Umsteigers (von .NET) Allgemeine Java-Themen 6
K Zu viele Threads -> langsamer angehen. Allgemeine Java-Themen 3
J Mit Referenzen verkettet Listen. Allgemeine Java-Themen 9
A Referenzen von Bildobjekten löschen Allgemeine Java-Themen 0
kaoZ Best Practice Shared Actions , Referenzen in Gui halten ? Allgemeine Java-Themen 25
K Referenzen finden Allgemeine Java-Themen 6
R Referenzen im Heap anzeigen Allgemeine Java-Themen 3
M Datentypen Referenzen oder seperate IDs vergleichen? Allgemeine Java-Themen 6
D Problem mit Referenzen beim Serialisieren Allgemeine Java-Themen 3
W n:m Beziehung Referenzen löschen Allgemeine Java-Themen 5
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
E EMF Ecore Modell. Referenzen nach außen. Allgemeine Java-Themen 2
F Referenzen auf Objekte Allgemeine Java-Themen 5
hdi Speichergröße von Objekten & Referenzen Allgemeine Java-Themen 8
S Serialisierung und Referenzen Allgemeine Java-Themen 6
D Referenzen; == Allgemeine Java-Themen 2
D Referenzen weiterreichen vs. statischer Zugriff Allgemeine Java-Themen 3
G Pointer und Referenzen Allgemeine Java-Themen 3
I Referenzen in Datei speichern Allgemeine Java-Themen 2
G (De)serialisierung und Referenzen Allgemeine Java-Themen 5
J Bibliothek gesucht Ana_lysieren von wss. Referenzen Allgemeine Java-Themen 2
A ArrayListe :Doppelte entfernen -> keine Referenzen Allgemeine Java-Themen 26
O Vektor kopieren (Inhalt, nicht Referenzen) Allgemeine Java-Themen 3
M Übergabe von Referenzen Allgemeine Java-Themen 3
H Referenzen statt Objekte für große Speicherstrukturen Allgemeine Java-Themen 19
P Das leidige Thema: Referenzen Allgemeine Java-Themen 2
N int[] referenzen in ein Array packen, brauche Hilfe. Allgemeine Java-Themen 7
A Referenzen / HashCodes nicht konstant? Allgemeine Java-Themen 2
K Probleme mit Referenzen Allgemeine Java-Themen 2
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
P Gif transparent machen Allgemeine Java-Themen 2
L Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
P Was machen bei NoSuchSessionException? Allgemeine Java-Themen 4
jmar83 “non blocking console input” wieder rückgängig machen? Allgemeine Java-Themen 1
X Kapselung Wie würdet ihr ein Service Layer erreichbar machen ... Allgemeine Java-Themen 62
M Dieses Programm schneller machen? Allgemeine Java-Themen 2
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
K Properties serializable machen Allgemeine Java-Themen 6
J Aus mehreren Klassen ein Datei ausführbare machen Allgemeine Java-Themen 6
X Aus Programm "Installationsprogramm" machen Allgemeine Java-Themen 6
Tacofan Button nicht mehr anklickbar machen Allgemeine Java-Themen 8
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
J Java code "plugin" fähig machen Allgemeine Java-Themen 4
Z Klassen ArrayList selbst machen Allgemeine Java-Themen 5
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
F Input/Output Problem mit iText: Formularfeld uneditierbar machen Allgemeine Java-Themen 0
T Programm "diebstahlsicher" machen? Allgemeine Java-Themen 4
A BufferedImage einzelne Pixel transparent machen V2.0 Allgemeine Java-Themen 2
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
M Enum austauschbar machen Allgemeine Java-Themen 3
Java-Insel Zeilen im Terminalfenster unsichtbar machen Allgemeine Java-Themen 9
K A*-Implementierung flexibler machen Allgemeine Java-Themen 4
Java-Insel Wie kann ich ein Java-Programm zum "automatischen Öffner" einer Dateisorte machen? Allgemeine Java-Themen 13
B exe-Datei aufrufen und dort Konsoleneingaben machen Allgemeine Java-Themen 2
E Klassen Enum überladen od. austauschbar machen? Allgemeine Java-Themen 2
D [Visualization lib] ColumnChart Grenzlinie machen Allgemeine Java-Themen 2
M Variablen Wie Variable verfügbar machen? Allgemeine Java-Themen 16
K Interface Interface comparable machen Allgemeine Java-Themen 9
V 2D-Grafik Bild transparent machen. Allgemeine Java-Themen 4
cedi Eingegebenen Text in der Konsole nicht sichtbar machen oder nur in Sternchen anzeigen Allgemeine Java-Themen 2
S Umlaute machen probleme Allgemeine Java-Themen 3
Rudolf Aus Collection<Integer> eine Zahl machen Allgemeine Java-Themen 2
K Serialisierung komplett selbst machen Allgemeine Java-Themen 13
M Farbe transparent machen Allgemeine Java-Themen 3
C Linie in Matrix machen Allgemeine Java-Themen 5
J Aus Applikation ein Applet machen Allgemeine Java-Themen 5
L in zufälligen Sekunden Ausgabe machen Allgemeine Java-Themen 2
K Escapen rückgängig machen Allgemeine Java-Themen 2
Q BufferedImage enzelne Pixel tranzparent machen Allgemeine Java-Themen 2
H Server Threaded machen. Port-Problem Frage Allgemeine Java-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben