T
tuxedo
Gast
Hallo,
ich hab da eine kleine Design-Frage. Weiß noch nicht so recht wie ich das ganze benennen soll. Ich mach am besten mal ein Beispiel:
Angenommen ich habe eine ZIP-Datei die eine bestimmte Struktur enthält, bzw. enthalten muss. Und ich hab eine Klasse, die als Container für solche Zip-Dateien gilt.
Diese Klasse könnte z.B. so aussehen:
Nun hab ich ein Programmteil der ein Verzeichnis durchschaut und die einzelnen Files auf "ist ein gültiges Archiv" prüft. Dazu würde ich die "isAccepted()" Methode aufrufen.
Wenn da "true" zurück kommt weiß ich dass es okay ist die File in den Konstruktor zu stecken und eine Instanz anzulegen.
Aber prinzipiell muss ich ja auch dort prüfen ob die File gültig ist.
Entweder lasse ich das vorherige, einzelne Abfragen auf "isAcppected()" weg und verlasse mich auch eine Exception, oder ich akzeptiere dass ich die ZIP-File zweimal anschauen muss.
Das Beispiel sollte man eher abstrakt und suboptimal zu betrachten. Aber ich denke ich versteht worauf ich hinaus will, oder?
Wie handhabt ihr sowas? Prüft ihr dann einfach zweimal? Oder lasst ihr den Programmfluss dann einfach in die Exception laufen?
Oder geht ihr gar ganz andere Wege?
Gruß
Alex
ich hab da eine kleine Design-Frage. Weiß noch nicht so recht wie ich das ganze benennen soll. Ich mach am besten mal ein Beispiel:
Angenommen ich habe eine ZIP-Datei die eine bestimmte Struktur enthält, bzw. enthalten muss. Und ich hab eine Klasse, die als Container für solche Zip-Dateien gilt.
Diese Klasse könnte z.B. so aussehen:
Java:
public class Archive
{
public Archive(File f)
{
if (!isArchive(f))
throw new InvalidArchiveException("foobar");
// .....
}
public static boolean isAccepted(File f) {
// prüft ob die angegebene Datei wirklich ein "Archive" ist wie es erwartet wird
}
// ... diverse getter folgen ...
}
Nun hab ich ein Programmteil der ein Verzeichnis durchschaut und die einzelnen Files auf "ist ein gültiges Archiv" prüft. Dazu würde ich die "isAccepted()" Methode aufrufen.
Wenn da "true" zurück kommt weiß ich dass es okay ist die File in den Konstruktor zu stecken und eine Instanz anzulegen.
Aber prinzipiell muss ich ja auch dort prüfen ob die File gültig ist.
Entweder lasse ich das vorherige, einzelne Abfragen auf "isAcppected()" weg und verlasse mich auch eine Exception, oder ich akzeptiere dass ich die ZIP-File zweimal anschauen muss.
Das Beispiel sollte man eher abstrakt und suboptimal zu betrachten. Aber ich denke ich versteht worauf ich hinaus will, oder?
Wie handhabt ihr sowas? Prüft ihr dann einfach zweimal? Oder lasst ihr den Programmfluss dann einfach in die Exception laufen?
Oder geht ihr gar ganz andere Wege?
Gruß
Alex