Zu viele Felder.

Status
Nicht offen für weitere Antworten.

StifMB

Mitglied
Ich habe mir eine einfache Filmdatenbank gebastelt, die auch soweit funktioniert. Nun bin ich dabei, neben Erweiterungen, den Code zu optimieren.
Meine Filme werden dabei in einem Objekt gespeichert, das viele Felder besitzt. Meine Frage ist nun, ob es noch andere Möglichkeiten gibt, dies zu realisieren? Zudem sind die Felder
Code:
public
und werden auch direkt angesprochen. Vlt. hat jemand noch eine Idee zur Verbesserung, z.B. wie es effizienter und speicherschonender sein kann. Ich wäre euch verbunden.

Hier nun die Datei:

Java:
package smdb.core;

import java.io.Serializable;
import java.util.ArrayList;

import smdb.core.manage.ScoreManager;
import smdb.ui.form.SerializableImage;

public class Movie implements Serializable {
	
	private static final long serialVersionUID = -7325748851764473930L;
	private int id;
	public String title = "";
	public String originalTitle = "";
	public String originalLanguage = "";
	public String country = "";
	public String year = "";
	public String genre = "";
	public String length = "";
	public String plot = "";
	public String plotAuthor = "";
	public String fsk = "";
	public boolean watched = false;
	public ArrayList<String> direction = new ArrayList<String>(0);
	public ArrayList<String> actors = new ArrayList<String>(0);
	public ArrayList<String> actorsRole = new ArrayList<String>(0);
	private ScoreManager scoreM;
	public String path = "";
	public ArrayList<String> fileNames = new ArrayList<String>(0);
	public String coverName = "";
	public SerializableImage cover = null;
	public String quality = "";
	public String notice = "";
	
	public Movie(int id) {
		this.id = id;
		scoreM = new ScoreManager();
	}

	public int getID() {
		return(id);
	}	
	
	public ScoreManager getScoreManager() {
		return(scoreM);
	}
}
 
Zuletzt bearbeitet:
J

JohannisderKaeufer

Gast
Üblich ist eigentlich die Verwendung von gettern und settern.
Das rührt daher, das einige Serialisierer auf die Getter und Setter zugreifen um ihre Arbeit zu verrichten.

Zum Interface Serializable gehört eigentlich noch ein Defaultkonstruktor. Weil, der ein oder andere Serialisierer sich irgendwie ein Objekt erzeugen muß, das er mit den Serialisierten Daten befüllt.

Bei so Geschichten wie String country, kann man sich überlegen ob man statt String auf Enums umsteigt. Sonst könnte es sein, daß man Filme aus Deutschland, Germany, Deutsch, D, Deu und Ger hat. Genre und Language sind ähnlich gelagert.

Stehen actors und actorsRole in einer Verbindung zueinander, so kann man ein weiteres (Serialisierbares) Objekt verwenden. z.B. Role das einen Titel und einen Actor hat.

Java:
public ArrayList<String> direction = new ArrayList<String>(0);
//sollte dann schon so aussehen
public List<String> direction = new ArrayList<String>();

Zahlen für year und length?
 

Wortraum

Bekanntes Mitglied
Wenn Du viele einzelne Variablen nicht magst, ist HashMap dazu vielleicht eine Alternative. (Dies wäre beispielsweise einfach zu ändern, wenn Du jetzt schon Getter und Setter hättest.)
 

StifMB

Mitglied
Ich danke für die Antworten und Hinweise. Ich habe meine Klasse komplett überarbeitet und auch getter und setter benutzt. Allerdings wird die Klasse dadurch recht groß und unübersichtlich wie ich finde. Habe nun auch eine HashMap verwendet, dadurch wird das gespeicherte Objekt kleiner, sofern Felder leer bleiben. Danke nochmals. Mit Enums muss ich mich aber noch beschäftigen.

Eine Frage hätte ich aber noch: Warum muss/sollte ich
Code:
List<String>
verwenden?

Java:
public List<String> direction = new ArrayList<String>();

Das Wichtigste wäre dann noch das automatische Abfragen von Filminformationen ... aber wie ich das hinbekommen soll ... o_O ...
 

Landei

Top Contributor
Man sollte generell "gegen das Interface" (List, Map, Set usw.) programmieren. Wenn du aus irgendwelchen Gründen einmal eine andere Listenimplementierung als ArrayList einsetzen willst (LinkedList, CopyOnWriteArrayList usw.), musst du nicht überall rumändern.

Eine Analogie: Es gibt keinen abstrakten "Schraubenschlüssel", sondern immer nur Modelle von bestimmten Firmen. Trotzdem wirst du in keiner Bauanleitung finden: "Nehmen Sie einen 13er Schraubenschlüssel Drehfix der Firma Schraubgut", sondern die allgemeinste Bezeichnung für ein Gerät, was die Arbeit erledingen kann, also "13er Schraubenschlüssel". Diese "allgemeinste Bezeichnung" ist hier das Interface. Du kannst damit Code schreiben, der mit beliebigen Listentypen umgehen kann.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Best Practice Wie viele Referenzen machen Sinn? Weniger ist mehr? Allgemeine Java-Themen 1
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 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
D Lombock primitive Felder in RequiredArgsConstructor Allgemeine Java-Themen 2
parrot Mehrdimmensionale Felder Allgemeine Java-Themen 4
parrot Felder - Feldwerte verdoppeln Allgemeine Java-Themen 18
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
S Java Felder Allgemeine Java-Themen 13
T Maximale Felder maximale Variablen Allgemeine Java-Themen 2
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
S "Vererben" statischer Felder/Methoden Allgemeine Java-Themen 4
T URL + Felder Allgemeine Java-Themen 1
C Zugriff auf Event felder Allgemeine Java-Themen 0
L iText PDF Form-Felder werden nach Bearbeitung mit iText nicht mehr richtig erkannt. Allgemeine Java-Themen 2
faetzminator verschiedene Beans, verschiedene Felder "koppeln" Allgemeine Java-Themen 3
K Hilfe Felder Allgemeine Java-Themen 7
I Vergleich zweier Felder Allgemeine Java-Themen 3
P Reflection - Wie rufe ich die Felder einer Klasse in einer Methode der Basisklasse? Allgemeine Java-Themen 4
megachucky Java Reflection -> versteckte Felder finden? Allgemeine Java-Themen 3
D Auf annotierte Felder oder Methoden zugreifen Allgemeine Java-Themen 4
J Instanz-Felder einer Klasse initialisieren Allgemeine Java-Themen 6
D Felder (Arrays) Allgemeine Java-Themen 4
F (Wie) sortiert ihr eure Felder, Methoden, etc? Allgemeine Java-Themen 19
G mit reflection an die felder einer klasse rankommen Allgemeine Java-Themen 4
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
M Felder + Werte einer Klasse auslesen Allgemeine Java-Themen 6
P Bei String alle Alphanumerischen Felder löschen Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben