Hallo,
ich brauche einmal Hilfe/Anregungen beim Design von ein paar zusammenhängenden Klassen, insbesondere dabei, die Objekte nachher zu speichern, also bei der Persitenz. Es geht um das Kopieren, Verschieben, Zippen, Verschicken von immer gleichen Dateien.
Ich hab vor ca. 2 Wochen recht interessiert den MVC-Thread gelesen und will versuchen,
GUI-Logik-Daten zu trennen.
1)
Es soll eine (abstrakte?) Oberklassen geben TJob.
Felder sowas wie: ID, Name, Ersteller, Letztes Ausführdatum, ...
Funktionen, die wahrsch. alle überschrieben werden: Laden, Speichern, Prüfen, Ausführen
Von der erben:
2)
Eine Klasse TFileJob für das speichern mehrerer hintereinanderauszuführender einfacher (Copy,Move,delete) Dateioperationen, wo jeweils eine Nummer (= ID?) für die Reihenfolge, Die Art der Operation und als String Quellpfad&Name und Zielpfad&Name gespeichert werden muss.
3)
Eine Klasse TZipJob, wo es eine Zieldateipfad&name gibt und mehrere Quelldateien(Pfad+Name), die
gespeichert werden.
4)
Eine Klasse TMailJob wo zunächste eine Liste von Quelldateien gespeichert wird und dann diverse Infos, die zum Mailversand wichtig sind: Empfänger, Betreff, usw.
Mein Hauptproblem ist nun, wie ich diese unterschiedlichen Jobs lade/speichere. Kann dazu natürlich zu jeder Klasse die passende Speichermethode in der Klasse überschreiben.
Ich hab aber noch die Vision, irgendwie eine eingen Klasse zu haben, die das Speichern übernimmt und die z.B. auch erstmal nur eine Liste der vorhandenen Jobs erstellen kann, ohne das gleich alle Jobs in den Speicher geladen werden müssen. Auch wäre es schön, das so nur an einer Stelle etwas verändert werden muss, wenn mal das "Speichermedium" gewechselt wird, z.B. von einer
DB auf Ini-Datei(en) o.ä., bzw. vllt. bietet diese Klasse von vorneherein unterschiedl. Speichermöglichkeiten an.
Die Frage ist nun, wie könnte man sowas realisieren, da gibt es doch bestimmt irgendwelche Muster oder Prinzipien? Würde eine solche Klasse auch noch Hilfsklassen brauchen (Speicher in Ini, Speichern in
DB,...)?
Dann geht es noch um die
GUI. Für die Anzeige/Editiermöglichkeit jeder Jobart würde ja eine leicht andere Oberfläsche gebraucht. Wie würde man das realisieren? Eine Oberfläsche(=Form), die sich anpasst oder unterschiedliche Forms? Vllt. mit Frames?
Und mir ist noch nicht ganz klar, wo die Controler-Klasse in das Bild passt.