G
Guest
Gast
Hallo Java-Gemeinde,
ich stehe vor einem kleinen Problem in einem Java-Programm (bzw. obs klein ist könnt ich beurteilen). Erst einmal zu der Situation: Wir haben im Informatik-Unterricht verschiedene Sortier-Algorithmen erhalten. Diese werden für best. Dateien ausgeführt. Das ist auch kein Problem.
Wir sollen zudem noch eine Ausgabe dazu schreiben.
Allerdings wollte ich jetzt das ganze noch etwas "schöner" machen und mich nachher nicht auf ein "Ausgabeformat" wie stdout, .txt oder .html beschränken (das wird laut Lehrer zwar nicht benötigt, aber ich will ja was für mich lernen).
Im Ergebnis habe ich für mein Programm verschiedene Komponenten: Ich habe eine Liste der untersuchten Dateien, also welche sortiert wurden. Dann haben wir noch so sachen untersucht wie "Anzahl der Vergleiche" etc. und dafür in den Algorithmen Zählvariablen verwendet. Gedacht wäre für den Teil sowas:
Datei Anzahl der Vergleiche Verwendeter Sortieralgorithmus
SimpleSort.java 100 Bubble-Sort
SimpleSort.java 10 Quick-Sort
...
In der klasse SortResult werden für eine Datei die Anzahl der Vergleiche und der verwendete Algorithmus gespeichert.
Das ist im html-Format mit einer Tabelle natürlich sehr leicht machbar.
Des Weiteren wäre dann noch eine Übersicht angedacht wie (Klasse AlgorithmOverview mit Algorithmus und Gesamtanzahl der Vergleiche):
Algorithmus Gesamtanzahl der Vergleiche
BubbleSort 100000
QuickSort 100
Die Übersicht könnte dann über oder unter der anderen Tabelle stehen.
Meine Frage ist nicht wie ich eine solche HTML-Ausgabe erzeuge, da es wohl klar ist wie es gehen muss. Allerdings würde mich interessieren wie ich eine Schnittstelle definieren könnte, so dass ich auch andere Arten der Ausgabe erhalte.
Ich dachte erst an sowas:
Das Problem ist doch aber, wenn die Methoden String zurückgeben und ich XML ausgabe möchte, ist String nicht geeignet (zumindest gibt es besseres). Unc ich erhalte für viele Dateien einen großen String, was ja auch unschön ist. Im Fall von der Standardausgabe müsste ich der Methode dann einen PrintStream übergeben, bei der HTML-Ausgabe z.B. einen BufferedWriter der in die HTML-Datei schreibt....Also total unterschiedliches.
Wie könnte ich das vereinheitlichen?
ich stehe vor einem kleinen Problem in einem Java-Programm (bzw. obs klein ist könnt ich beurteilen). Erst einmal zu der Situation: Wir haben im Informatik-Unterricht verschiedene Sortier-Algorithmen erhalten. Diese werden für best. Dateien ausgeführt. Das ist auch kein Problem.
Wir sollen zudem noch eine Ausgabe dazu schreiben.
Allerdings wollte ich jetzt das ganze noch etwas "schöner" machen und mich nachher nicht auf ein "Ausgabeformat" wie stdout, .txt oder .html beschränken (das wird laut Lehrer zwar nicht benötigt, aber ich will ja was für mich lernen).
Im Ergebnis habe ich für mein Programm verschiedene Komponenten: Ich habe eine Liste der untersuchten Dateien, also welche sortiert wurden. Dann haben wir noch so sachen untersucht wie "Anzahl der Vergleiche" etc. und dafür in den Algorithmen Zählvariablen verwendet. Gedacht wäre für den Teil sowas:
Datei Anzahl der Vergleiche Verwendeter Sortieralgorithmus
SimpleSort.java 100 Bubble-Sort
SimpleSort.java 10 Quick-Sort
...
In der klasse SortResult werden für eine Datei die Anzahl der Vergleiche und der verwendete Algorithmus gespeichert.
Das ist im html-Format mit einer Tabelle natürlich sehr leicht machbar.
Des Weiteren wäre dann noch eine Übersicht angedacht wie (Klasse AlgorithmOverview mit Algorithmus und Gesamtanzahl der Vergleiche):
Algorithmus Gesamtanzahl der Vergleiche
BubbleSort 100000
QuickSort 100
Die Übersicht könnte dann über oder unter der anderen Tabelle stehen.
Meine Frage ist nicht wie ich eine solche HTML-Ausgabe erzeuge, da es wohl klar ist wie es gehen muss. Allerdings würde mich interessieren wie ich eine Schnittstelle definieren könnte, so dass ich auch andere Arten der Ausgabe erhalte.
Ich dachte erst an sowas:
Code:
interface SortOutput {
public String write(List<SortResult>);
public String write(List<AlgorithmOverview>);
}
Das Problem ist doch aber, wenn die Methoden String zurückgeben und ich XML ausgabe möchte, ist String nicht geeignet (zumindest gibt es besseres). Unc ich erhalte für viele Dateien einen großen String, was ja auch unschön ist. Im Fall von der Standardausgabe müsste ich der Methode dann einen PrintStream übergeben, bei der HTML-Ausgabe z.B. einen BufferedWriter der in die HTML-Datei schreibt....Also total unterschiedliches.
Wie könnte ich das vereinheitlichen?