klassenstruktur gesucht

Status
Nicht offen für weitere Antworten.

diggaa1984

Top Contributor
hiho,

also ich haben nen DatenController, welcher alleinig die Daten beinhaltet (ne ArrayList<xy>) .. sämtliche Manipulationen der Daten laufen über diesen Controller und werden bei Gültigkeit weitergeleitet an die Datenstruktur.

So, nun besteht ja nich selten der Bedarf das ganze zu speichern. Könnte ich ja problemlos in den Controller mit reinschreiben, aber um den nicht unnötig aufzublähen wollte ich das Speichern auslagern, aber dann habe ich das Problem das ich diese Klasse spezifisch auf die Datenstruktur anpassen müsste (Klasse xy), damit die Speicherklasse mit den Daten arbeiten kann. Aber das hätte ja 0 Wiederverwendungswert und da könnte ich es auch gleich in den Datencontroller schreiben.

Als Beispiel sei mal der Export in einer XML-datei genannt. Wenn ich mir nen Adapter schreibe der wirklich nur auf Klasse XY ausgelegt ist, kann ich das doch gleich in den Controller schreiben.

Universell auslagern wäre ja nur möglich, wenn ich bytes[] schreibe oder? weil dann is das Speichern unabhängig von dem was als byte-array reinkommt. Aber sobald ich dann zB xml schreiben möchte kann ich ja keine byte[] mehr schieben, da gibts doch bestimmt methoden zum schreiben von elementen und deren inhalten, da komm ich ja mit bytes nicht weit.


oder gibts da generell andere mechanismen die man nutzen sollte? Serialisierung kommt gar nicht erst in Frage

also ziel wäre es ... das Speichern in eine extra Klasse auszulagern, und je nachdem wie der Nutzer das gern speichern möchte (Filtervorgabe im JfileChooser), würde ich die entsprechende Methode aufrufen wollen und die Daten angeben die gespeichert werden sollen.

ich vermute ich komme nicht um eine spezifische Implementierung für meine Datenstruktur herum, später muss ich auch noch einen Graphen speichern, aber da hat der Nutzer keine Wahl, der wird mit selben Dateinamen und spezieller endung angelegt, da wäre etwas spezifisches nicht schlimm.
 
V

Vayu

Gast
wie willst du denn eine universelle Speichermethode schreiben, die alles von selbst kann?

Du schreibst dir halt für jeden von unterstützten dateityp einen adapter, der dir deine Daten in das spezielle format exportiert. Wenn der Benutzer per FileChooser eine xml datei auswählt, rufst du halt deinen XMLAdapter auf. Wenn er eine txt datei auswählt rufst den TextAdapter auf. Natürlich musst du das alles speziell ausimplementieren.
 

diggaa1984

Top Contributor
mir fiel noch ein eventuell ne klasse zu baun, die alles in bytes[] bekommt und das dann jeweils in das format umwandelt das zum speichern benötigt wird (strings oder weiss der geier was) .. da müsste ja einigermaßen funktionieren oder?

und dann kann ich da reinschieben was ich möchte und der baut mir dann alles entsprechend so, dass er es mittels der java-klassen in eine datei schreiben kann !? :D
 

Andreas29

Bekanntes Mitglied
H,

also ich würde mir ein Interface anlegen, das eine Methode a la:
Code:
public void save(XY xy)

hat und dieses Interface je nach Zielformat implementieren. Sprich, eine Implementierung, die das ganze nach XML rausschreibt, eine für bytes, eine für eine Datenbank und so weiter undso fort. Dann kannst du das immer flexibel erweitern und hast es schön weggekapselt.

Nur so eine Idee.

Grüße,
Andreas
 

diggaa1984

Top Contributor
ja richtig, versuch nur grad was zu basteln was eben datentypunabhängig wäre :D ... aber sonst ist mit dem interface klar, würde ich auch so machen wenns kein andern weg gibt
 

Murray

Top Contributor
Du könntest natürlich per Reflection beliebige Strukturen analysieren und irgendwie unter Verwendung der toString-Methoden in irgendeinem Format ausgeben - aber das wäre eigentlich auch nur eine eigene Form von Serialisierung.

Für das XML-Format gibt es mitXStream eine generische XML-Serialisierung.
 

Andreas29

Bekanntes Mitglied
Hi,

das klingt nicht wirklich gut, Murray, denn dann würde die Geschäftslogik der Anwendung davon abhängen, dass die Datenobjekte eine vernünftige toString()-Methode haben. Und man sollte niemals seine Geschäftslogik von dieser Methode abhängig machen. Die Gefahr, dass dann etwas schiefgeht, ist einfach zu groß.

Grüße,
Andreas
 

Murray

Top Contributor
Einen Tod muss man sterben - wenn es einen allgemeinen Mechanismus zum Ausschreiben und Einlesen von Datenstrukturen geben soll, der von den konkreten Strukturen aber nichts wissen darf, dann geht das nur, wenn die Datentypen bestimmte "Verträge" einhalten.
 

diggaa1984

Top Contributor
hm so auf den ersten blick sah XStream auch nicht danach aus was am ende herauskommen soll :D

muss mir wenn ich mehr zeit hab nochma gedanken machen, und xml-libs wühlen.
das format wollt ich auf jeden Fallen mit reinnehmen
 

Murray

Top Contributor
Was willst Du genau erreichen? Sollen beliebige Datenstrukturen in verschiedene Formate (z.B. XML) gespeichert und wieder eingelesen werden können? Für mich sieht das so aus, als wolltest Du etwas zuviel an Abstraktion und Wiederverwendbarkeit.
 
P

Puste

Gast
diggaa, dir wird nichts anderes übrig bleiben als pro Objekt Entscheidungen zu treffen. Kein Algorithmus wird entscheiden können ob bei einem Objekt X Member y nun gespeichert werden soll oder nicht. Die Entscheidung bleibt immer am Programmierer hängen, denn diese basiert auf Informationen die das Programm nicht hat. (Selbst mit der Java eigenen Serialisierung stößt man schnell an Grenzen und muss auch dieser beibringen gewisse Member anderst zu behandeln als andere.)

Die einzige Möglichkeit die man hat ist die eigentlichen Datenspeicherungsprozesse auszulagern, die Definition was wie gespeichert werden soll wird immer am Programmierer hängen bleiben.


Wenn man Datenspeicherung kapseln will, so würde ich persönlich immer zum DAO Pattern greifen:
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
Aber auch dort bleibt es dem Programmierer überlassen zu definieren was nun wie gespeichert werden soll.
 

diggaa1984

Top Contributor
ja na was ich speichern will muss ich selber festlegen sicherlich, mir gehts um das auslagern, aber da will ich nun nicht unbedingt was basteln, was wirklich nur auf das aktuelle programm und dessen datenstrukturen geeicht ist.

wie gesagt ich muss mal selbst noch ein wenig rumprobieren, aber momentan is zeit wieder mangelware ;/

sowas wie: MyXMLWriter.write(this); wobei this nun mal die klasse sei mit datenstrukturen oder eine der datenklassen selbst .. kanns nicht werden und solls auch gar nich ^^
 
P

Puste

Gast
Es ging nicht nur darum was gespeichert werden soll, sondern auch wie.

Woher soll z.B. irgendein Programm wissen, dass Bei Klasse Person Member Haustier gespeichert werden soll, Bei der Klasse Haustier Member Besitzer aber nicht. Das ist auch eine Entscheidung "wie" nun die Klasse Haustier gespeichert werden soll und man muss entweder in den Klassen selbst definieren wie diese zu speichern sind, oder Teile der ausgelagerten Datenspeicherungsstruktur auf die spezifischen Datenstrukturen anzupassen.

Ansonsten wie gesagt, Link DAO ist immer recht fein, um Datenspeicherungsverfahren (z.B. Datenbankanfragen, XML Generierung, etc) auszulagern und redundanten Code zu vermeiden. Sowie hat man dort auch die Möglichkeit mehrere Verfahren parallel zu implementieren, was deinem Vorhaben oben entsprechen würde. (Der Benutzer kann wählen)
 
V

Vayu

Gast
du könntest die member mit annotations versehen und dann per reflection entscheiden, ob die membervariable mit rausgespeichert werden soll oder nicht. Dann steckt die Logik WAS gespeichert wird in den Datenhaltungsobjekten selbst drin. ich finde die Lösung aber eher eklig :)
 

Murray

Top Contributor
Dazu bräuchte man noch nicht einmal Annotations, denn dafür ist ja der Modifier transient da.
 
V

Vayu

Gast
stümmt. mit annotations kann man halt noch zusatzinfos mitgeben.
 

diggaa1984

Top Contributor
na nu driftet mal nich so ab :D ... reflection wird hier nich reinspielen ^^

ich entzieh mich mal der diskussion bis ich zeit dafür habe mir mehr gedanken zu machen

danke dennoch für die hinweise, bissel was konnt ich ja mitnehmen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S OOP Problembereichsmodell: Bestehende Framework Klasse in eigene Klassenstruktur einbinden Allgemeine Java-Themen 9
G Klassenstruktur auslesen Allgemeine Java-Themen 2
M Klassenstruktur für einen Java-Chat Allgemeine Java-Themen 20
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
N Java API für CardDav und CalDav gesucht Allgemeine Java-Themen 4
B OCR Library gesucht Allgemeine Java-Themen 6
V Javalehrer gesucht Allgemeine Java-Themen 2
K Java-Forum gesucht Allgemeine Java-Themen 12
O Best Practice Hilfe bei Algorithmus gesucht Allgemeine Java-Themen 10
A Hilfe gesucht Allgemeine Java-Themen 44
N Schulung zu Tomcat/JSP/Struts gesucht Allgemeine Java-Themen 0
E Gewollte Endlosschleife unterbrechen oder Alternative gesucht Allgemeine Java-Themen 2
S API gesucht Allgemeine Java-Themen 3
O Freies Tool zum Jar-File obfuscaten gesucht! Allgemeine Java-Themen 5
Londi DJ MP3 Lib gesucht Allgemeine Java-Themen 0
I Dringend nachhilfe in programmieren gesucht!!!!!!!! Allgemeine Java-Themen 1
I Dringend nachhilfe in programmieren in mannheim gesucht!!!!! Allgemeine Java-Themen 3
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
J Kalenderwecker gesucht Allgemeine Java-Themen 2
D Kuriose Geschichte -> Antwort gesucht Allgemeine Java-Themen 4
O Tag Cloud Algorithmus Idee gesucht Allgemeine Java-Themen 2
S Java XTools gesucht Allgemeine Java-Themen 2
N Boolsche Algebra via eval vereinfachen -> Ausmultiplizieren gesucht Allgemeine Java-Themen 15
E Nachhilfe in Java gesucht!!! Allgemeine Java-Themen 3
H Graph-Algorithmus gesucht Allgemeine Java-Themen 21
B Dringend Hilfe gesucht für Struktogramm Allgemeine Java-Themen 11
N Liste gesucht Allgemeine Java-Themen 2
Guybrush Threepwood Pattern gesucht: Punkt ohne Leerzeichen dahinter Allgemeine Java-Themen 3
B IRC-Library Gesucht Allgemeine Java-Themen 2
T Projektthema gesucht Allgemeine Java-Themen 2
c_sidi90 Aufgaben für Einstellungstest (Azubicasting) gesucht Allgemeine Java-Themen 10
M WebFramework für Userhandling gesucht Allgemeine Java-Themen 7
E Dezimalzahl -> Hexadezimalzahl [Lösungsweg gesucht] Allgemeine Java-Themen 2
M Funktion gesucht: Text vektorisieren Allgemeine Java-Themen 20
R Collections Datenstruktur gesucht Allgemeine Java-Themen 12
J Algorithmus gesucht (Stringtransformation) Allgemeine Java-Themen 4
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
alex_fairytail IT-Kleinprojekt: Ideen gesucht! Allgemeine Java-Themen 18
B TypeOf oder ähnliches gesucht Allgemeine Java-Themen 3
A Bibliothek für NP-harte Zuordnung gesucht. Allgemeine Java-Themen 7
E Super erzwingen, konzept/pattern gesucht. Allgemeine Java-Themen 8
T Passende Listenstruktur gesucht Allgemeine Java-Themen 5
S Webstart: vollständige JNLP-Doku. gesucht Allgemeine Java-Themen 4
S Meinung zu Programmidee gesucht Allgemeine Java-Themen 9
Guybrush Threepwood Neuronale Netzwerke - Bibliothek gesucht Allgemeine Java-Themen 3
agentone Graphen-Lib gesucht Allgemeine Java-Themen 7
Ark Name für Funktion gesucht Allgemeine Java-Themen 5
F Spam-Mail-Programm gesucht Allgemeine Java-Themen 11
S JKL - Bibiliothek gesucht ? Allgemeine Java-Themen 9
hdi Beispiel für EDT Violations gesucht Allgemeine Java-Themen 4
J Open Source Projekt anbieten - Leitfaden gesucht Allgemeine Java-Themen 3
E Mehrfacher vererbungsersatz gesucht. Allgemeine Java-Themen 9
F Passende Struktur gesucht Allgemeine Java-Themen 6
A Regex gesucht Allgemeine Java-Themen 9
J Parser / Scanner / Tokenizer gesucht Allgemeine Java-Themen 3
V DecimalformatPattern gesucht Allgemeine Java-Themen 4
as182005 Bibliothek für Graph Visualisierung gesucht Allgemeine Java-Themen 3
H Framework empfehlung / gute Anfängerbeispiele gesucht Allgemeine Java-Themen 12
M Texteditor gesucht Allgemeine Java-Themen 3
B Effizienter Suchalgorithmus gesucht Allgemeine Java-Themen 10
D design gesucht - Angabe von zu ersetzenden substrings Allgemeine Java-Themen 2
P Java-Security-Aufgabe gesucht Allgemeine Java-Themen 2
J Listener für Ende eines Threads gesucht... Allgemeine Java-Themen 5
T Webseite (HTML) Parser gesucht Allgemeine Java-Themen 8
N Datenstruktur für Netze gesucht Allgemeine Java-Themen 8
B Pattern gesucht, Programm Optionen, Casten vermeiden Allgemeine Java-Themen 3
S Verschlüsselungsbibliotheken gesucht Allgemeine Java-Themen 8
N Empfehlung für Java 1.5 Decompiler gesucht Allgemeine Java-Themen 2
D Banking Framework gesucht Allgemeine Java-Themen 5
G OOP Umsetzung gesucht Allgemeine Java-Themen 25
S Netzwerkdiagramm / Sequenzdiagramm - Ideen gesucht Allgemeine Java-Themen 2
S Stemming-Algorithmus gesucht (z.B. Porter) Allgemeine Java-Themen 2
J Bibliothek gesucht Ana_lysieren von wss. Referenzen Allgemeine Java-Themen 2
S VideoStreaming-Tool gesucht! Allgemeine Java-Themen 2
G Sehr gutes Java-Framework(Gui-Builder) auf XML-Basis gesucht Allgemeine Java-Themen 21
T Datenstruktur gesucht Allgemeine Java-Themen 18
D Report Engine gesucht Allgemeine Java-Themen 2
F Idee fuer Suchfeldmapping gesucht Allgemeine Java-Themen 10
C Pattern für Kommunikation gesucht Allgemeine Java-Themen 3
0 Rechenaufwändiger, kurzer Codeschnipsel gesucht! Allgemeine Java-Themen 17
E Countdownfunktion gesucht Allgemeine Java-Themen 52
S Koridinatensystem gesucht Allgemeine Java-Themen 4
M IRC Chat - Klasse oder Application gesucht Allgemeine Java-Themen 9
D gesucht Wörterbuch deutsch / englisch Allgemeine Java-Themen 4
N Denkanstösse zu Schnittmengensuche gesucht Allgemeine Java-Themen 9
M Schnell kleine Hilfe gesucht! Allgemeine Java-Themen 3
K Elegante Lösung zum Manipulieren von Collections gesucht Allgemeine Java-Themen 16
B Formel Interpreter gesucht Allgemeine Java-Themen 7
S Methode zum Zählen von Buchstaben in Strings gesucht Allgemeine Java-Themen 11
K Prozess-Visualisierung: Stichwörter gesucht Allgemeine Java-Themen 4
B Unicode für Kreuz gesucht Allgemeine Java-Themen 2
H Unicode Darstellung in Java, spezielles Zeichen gesucht Allgemeine Java-Themen 4
foobar Alternative zu JavaHelp gesucht Allgemeine Java-Themen 2
B Methode gesucht Allgemeine Java-Themen 3
H if - else if-else bessere Lösung gesucht Allgemeine Java-Themen 4
M Chat-Software gesucht Allgemeine Java-Themen 3
T Design-Tipp gesucht Allgemeine Java-Themen 2
G Shopsystem gesucht Allgemeine Java-Themen 2
M Java Klasse gesucht / Outlook Adressdaten auslesen Allgemeine Java-Themen 3
Ark Diagramm zur Java-Grammatik gesucht Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben