Auswahl auf welche Art gespeichert werden soll

L

Lodrik

Gast
Hi Leute,

Ich hab versucht mit der Suche eine Lösung für mein Problem zu finden, aber ich weiß nicht genau, nach was ich suchen muss.

Es ist wahrscheinlich ziemlich Simple aber ich komm einfach nicht darauf.

Wir sollen unserem Projekt die Möglichkeit anbieten entweder die Daten in ein XML-File zu schreiben oder in eine Datenbank.
Generell soll es die Möglichkeit geben später einfach eine neue Variante, wie die Daten gespeichert werden sollen, zu implementieren.

Ich hab mir dazu Folgendes überlegt:

Java:
public interface DataHandler
{
   public void save(Data data, String path);

   public DataHandler load(String path);
}

public class XML implements DataHandler
{
   public void save(Data data, String path)
   {
      ....
   }

   public DataHandler load(String path)
   {
      ...
      return xml;
    }
}

public class LoadSave
{
    public LoadSave()
    {
    }

    public void save(DataHandler dataHandler, Data data, String path)
    {
       dataHandler.save(data, path)
    }

    public DataHandler load(DataHandler dataHandler, String path)
    {
       return dataHandler.load(path);
    }
}

Ich hab mir gedacht so sollte es theoretisch möglich sein später einfach eine neue Variante zu implementieren, doch momentan erzeuge ich in der GUI ein neues XML-Objekt und übergebe das der save bzw. load Methode von LoadSave. An diesem Punkt denke ich mir das ich bei der Implementierung bzw. der Umsetzung was falsch gemacht habe, weil ich könnte, eben so gut gleich xml.save(...) aurufen.

Hat hier jemand vl einen Tipp oder einen Vorschlag, was ich hier noch ändern muss/sollte?
 

javimka

Top Contributor
Du könntest wirklich alles zum Speichern von XML Dateien in die Klasse XML aufnehmen (würde ich unbenennen). Wenn du dann etwas als XML abspeichern willst, schreibst du:
Java:
DataHandler xmlSaver = new XML();
xmlSaver.save(data,path);

und wenn du etwas anders abspeichern willst:
Java:
DataHandler otherSaver = new OtherSaver();
otherSaver.save(...)
 
L

Lodrik

Gast
Vielen Dank schon mal für deine Hilfe!
Die Klasse LoadSave kann ich löschen?

Eine Frage hab ich dann noch zum Laden, ist das so richtig?

Java:
DataHandler xmlLoader = new XML();

XML xml = xmlLoader.load(path);

oder sollte ich im Interface schon den Rückgabewert auf Data ändern?

Java:
public interface DataHandler
{
   public void save(Data data, String path);
 
   public Data load(String path);
}

und in der GUI dann einfach nur mehr

Java:
data = xmlLoader.load(path);

schreiben?

mfg
 

javimka

Top Contributor
ja, ich würde Data als Rückgabewert nehmen.

Wenn ich es machen müsste, würde ich dem Interface zusätzlich noch die Methode [c]public String getDescription()[/c] anfügen, die einen String zurückgibt. Irgendwann willst du wahrscheinlich den Anwender entscheiden lassen, welche Speichermethode verwendet werden soll. Dann kannst du ein DataHandler[] Array mit allen möglichen Speichermethoden haben und mit getDescription hast du zu jeder Methode eine beschreibung, damit der Anwender, und nicht zuletzt auch du, wissen, welche Methode was macht.
 
L

Lodrik

Gast
ja, ich würde Data als Rückgabewert nehmen.

Wenn ich es machen müsste, würde ich dem Interface zusätzlich noch die Methode [c]public String getDescription()[/c] anfügen, die einen String zurückgibt. Irgendwann willst du wahrscheinlich den Anwender entscheiden lassen, welche Speichermethode verwendet werden soll. Dann kannst du ein DataHandler[] Array mit allen möglichen Speichermethoden haben und mit getDescription hast du zu jeder Methode eine beschreibung, damit der Anwender, und nicht zuletzt auch du, wissen, welche Methode was macht.

Du meinst also, ich sollte in meiner GUI ein Array anlegen und dann beim Drücken des Save-Buttons die entsprechende Methode aufrufen?
Entschuldige, wenn ich das jetzt nicht gleich versteh, ich arbeite an dem schon länger und bin momentan leicht verwirrt!

Java:
public class GUI
{
   private DataHandler[] handlerArray;

   public GUI()
   {
       handlerArray[0] = new XML();
       handlerArray[1] = new DB();
       ....
   }
}

und dann beim Drücken des Buttons nur mehr

Java:
handlerArray[0].save(data, path);

Bei getDescription schreibe ich zum Beispiel das die Daten in ein XML File gespeichert werden?

mfg
 

javimka

Top Contributor
Genau so meine ich das. Der Anwender kann dann vielleicht in einer JList oder JCombobox oder was dir gefällt die richtige Methode aussuchen. Oder vielleicht auch gleich im JFileChooser, dem du einen FileFilter anhängst.
 
L

Lodrik

Gast
Vielen vielen Dank für deine Hilfe, hat mir sehr geholfen.

Ich werd das ganze gleich Umsetzen.

mfg Lodrik
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
O Warum ist die Auswahl falsch? Java Basics - Anfänger-Themen 4
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
P Auswahl bei einem Videoverleih limitieren Java Basics - Anfänger-Themen 4
J Objekt bei Auswahl in jList ändern Java Basics - Anfänger-Themen 6
D Auswahl und Ausgabe erstes Programm Java Basics - Anfänger-Themen 8
Moritz1508 Variablen Erstellung eines simplen Taschenrechners mit +/- - Auswahl Java Basics - Anfänger-Themen 2
M Erste Schritte Auswahl in einer JList Java Basics - Anfänger-Themen 2
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
A Grundrechenarten; Aufforderung zur Bestätigung oder Auswahl Java Basics - Anfänger-Themen 25
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
L Speicherort auswahl Java Basics - Anfänger-Themen 4
M JComboBox Auswahl Java Basics - Anfänger-Themen 10
J JComboBox - Auswahl auslesen Java Basics - Anfänger-Themen 2
P Klassen Mehrseitige Auswahl Java Basics - Anfänger-Themen 6
N Auswahl von Arrays durch Stringeingabe Java Basics - Anfänger-Themen 20
K Auswahl der Grafikbibliothek Java Basics - Anfänger-Themen 9
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
JAVAnnik JList Auswahl Java Basics - Anfänger-Themen 2
D Erste Schritte Auswahl der richtigen tools Java Basics - Anfänger-Themen 7
R Auf auswahl in ner JComboBox reagieren Java Basics - Anfänger-Themen 3
J select-feld auswahl, jsp javascript Java Basics - Anfänger-Themen 2
J Sortieren nach Auswahl Java Basics - Anfänger-Themen 3
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
S FileFilter je nach RadioButton-Auswahl Java Basics - Anfänger-Themen 4
J Taschenrechner Combobox Reaktion auf Auswahl Java Basics - Anfänger-Themen 2
M zufällige auswahl eines Panels aus Grid Layout Java Basics - Anfänger-Themen 3
E Combobox Auswahl überprüfen Java Basics - Anfänger-Themen 7
G Befehl für Ende bei Switch-Auswahl Java Basics - Anfänger-Themen 11
C Bilder Vorschau und Auswahl Java Basics - Anfänger-Themen 4
X JFileChooser Auswahl Java Basics - Anfänger-Themen 4
X Auswahl durch Eingabe von Buchstaben - aber wie? Java Basics - Anfänger-Themen 2
E auswahl von dateien Java Basics - Anfänger-Themen 2
G Auswahl eines Arbeitsverzeichnisses Java Basics - Anfänger-Themen 7
V Tastatur Abfrage im Lisener für eine Auswahl üder Textfeld Java Basics - Anfänger-Themen 8
D Pfad-Auswahl mit dem JFileChooser Java Basics - Anfänger-Themen 8
I Editor auswahl Java Basics - Anfänger-Themen 6
G Auswahl anhand Wahrscheinlichkeiten Java Basics - Anfänger-Themen 5
J dynamische Auswahl einer überladenen Methode Java Basics - Anfänger-Themen 5
R Zweiseitige Auswahl Java Basics - Anfänger-Themen 16
B Auswahl mit switch ? Java Basics - Anfänger-Themen 6
G Schrift-Auswahl-Dialog? Java Basics - Anfänger-Themen 6
P Auswahl von JComboBox abfangen Java Basics - Anfänger-Themen 3
G Auswahl:in File schreiben, oder System.out.print Java Basics - Anfänger-Themen 4
C Auswahl problem Java Basics - Anfänger-Themen 5
W JComboBox- Auswahl schließt komplettes Fenster Java Basics - Anfänger-Themen 10
G Auswahl in DropDown feldern in JSP seiten als Action Aufruf Java Basics - Anfänger-Themen 2
G Filechooser ohne Auswahl für Dateityp Java Basics - Anfänger-Themen 2
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
L Welche Methode? Java Basics - Anfänger-Themen 7
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33

Ähnliche Java Themen

Neue Themen


Oben