Wie der title schon sagt stehe ich mal wieder von der Qual der Wahl,
ich befinde mich in folgender Sitation :
Ich habe eine Abstrakte Klasse angelegt welche ein Dokument Darstellt, diese Klasse erbt von JPanel, da es die Basisfunktionen / Attribute für zwei Subklassen bereitstellt.
nun ist mein Problem recht einfach zu beschreiben, meine Anwendung besitzt einen Zentralen Controller welcher die Gui initialisiert und anzeigt, dieser wiederum hält eine Referenz auf ein Preferences Objekt, welches (bis jetzt) lediglich die Informationen über den ExtendedState der Gui beinhaltet.
Nun möchte ich an folgender Stelle , das beim anlegen einer neuen Rechnung ( Spezialisierung eines Dokumentes ) , dementsprechend ein Counter inkrementiert wird ( welcher die bereits erstellten Rechnungen zählt ) und der (logischerweise) über den Anwendungszyklus hinaus persistent irgendwo gespeichert bleiben muss.
Hier hab ich natürlich mehrere Optionen, meine Frage ist nun , was ist der gängige Weg :
greife ich statisch auf das Preferences Objekt zu und hole mir die Werte ?
ungefähr so :
und halte dann ALLE Informationen zu meiner Anwendung in EINEM Preferences Objekt?
oder lege ich für die verschiedenen Dokument Typen eigene Preferences an ?
oder nutze ich Properties und erstelle einfach (irgendwo) eine Datei die dann die Daten für den jeweiligen Document typ hält und die ich dann bei jedem anlegen eines Dokumentes einlese, und ( z.B ) bei jedem Drucken oder speichern der Dokumentes überschreibe ?
Wie würdet ihr vorgehen ? Was ist da die gängige Praxis? Vielleicht ein doch völlig anderer Weg ?
EDIT :
oder sollte ich vielleicht eine Properties Datei anlegen welche alle informationen beim ersten Start in die Registry also in ein Preferences Objekt schreibt und dieses dann der gesamten Applikation zugänglich machen ?
das klingt zumindest schon ziemlich gut
so müsste ich mich dann auch nicht immer um das parsing kümmern wenn man ein anderer Datentyp als String erwartet wird, da dies ja dann schon über das Preferences Objekt durch die verschiedenen getter erledigt wird.
oder prüfe ich vor Applikationsstart einfach ob z.B eine ersteinrichtung erfolgt ist , und wenn nicht schreibe ich die Werte direkt in das Preferences Objekt ? sollte ich diese Werte dann ggf. in einer Properties Datei halten anstatt hardcoded im Source Code zu halten ?
quasi solch ein ähnliches konstrukt:
Erleuchtet mich :idea:
ich befinde mich in folgender Sitation :
Ich habe eine Abstrakte Klasse angelegt welche ein Dokument Darstellt, diese Klasse erbt von JPanel, da es die Basisfunktionen / Attribute für zwei Subklassen bereitstellt.
nun ist mein Problem recht einfach zu beschreiben, meine Anwendung besitzt einen Zentralen Controller welcher die Gui initialisiert und anzeigt, dieser wiederum hält eine Referenz auf ein Preferences Objekt, welches (bis jetzt) lediglich die Informationen über den ExtendedState der Gui beinhaltet.
Nun möchte ich an folgender Stelle , das beim anlegen einer neuen Rechnung ( Spezialisierung eines Dokumentes ) , dementsprechend ein Counter inkrementiert wird ( welcher die bereits erstellten Rechnungen zählt ) und der (logischerweise) über den Anwendungszyklus hinaus persistent irgendwo gespeichert bleiben muss.
Hier hab ich natürlich mehrere Optionen, meine Frage ist nun , was ist der gängige Weg :
greife ich statisch auf das Preferences Objekt zu und hole mir die Werte ?
ungefähr so :
Java:
private void init(){
id = ApplicationController.PREFS.getInt("invoiceID", 0);
title = ApplicationController.PREFS.get("invoiceTitle", "default");
date = new Date();
valueObject.add(title, date);
}
und halte dann ALLE Informationen zu meiner Anwendung in EINEM Preferences Objekt?
oder lege ich für die verschiedenen Dokument Typen eigene Preferences an ?
oder nutze ich Properties und erstelle einfach (irgendwo) eine Datei die dann die Daten für den jeweiligen Document typ hält und die ich dann bei jedem anlegen eines Dokumentes einlese, und ( z.B ) bei jedem Drucken oder speichern der Dokumentes überschreibe ?
Wie würdet ihr vorgehen ? Was ist da die gängige Praxis? Vielleicht ein doch völlig anderer Weg ?
EDIT :
oder sollte ich vielleicht eine Properties Datei anlegen welche alle informationen beim ersten Start in die Registry also in ein Preferences Objekt schreibt und dieses dann der gesamten Applikation zugänglich machen ?
das klingt zumindest schon ziemlich gut
so müsste ich mich dann auch nicht immer um das parsing kümmern wenn man ein anderer Datentyp als String erwartet wird, da dies ja dann schon über das Preferences Objekt durch die verschiedenen getter erledigt wird.
oder prüfe ich vor Applikationsstart einfach ob z.B eine ersteinrichtung erfolgt ist , und wenn nicht schreibe ich die Werte direkt in das Preferences Objekt ? sollte ich diese Werte dann ggf. in einer Properties Datei halten anstatt hardcoded im Source Code zu halten ?
quasi solch ein ähnliches konstrukt:
Java:
public static void main(String[] args){
if(!PREFS.getBoolean("setupFinished", false)) {
PREFS.put("title", "Rechnungs Editor");
PREFS.put("dev", "kaoZ");
JOptionPane.showMessageDialog(null, "Sie müssen erst das Setup ausführen !");
}
else{
new ApplicationController().startApplication();
}
}
Erleuchtet mich :idea:
Zuletzt bearbeitet: