Was ist besser - Verwenden von String oder File als Parametertyp für Methoden, die Dateinamen übernehmen [geschlossen]

8

Ich habe ein paar Methoden, die Dateinamen als Parameter verwenden. Mein Zweifel ist, dass es besser ist, die Parameter dieser Methoden zu deklarieren.

  • Sollte der Parameter vom Typ String

    sein %Vor%
  • Oder sollte ich den Parameter explizit als File deklarieren.

    %Vor%

Ich persönlich finde File intuitiver, möchte aber wissen, was für solche Dinge am besten geeignet ist.

    
ManojGumber 17.06.2013, 07:34
quelle

5 Antworten

20

Ich würde eine java.io.InputStream übergeben - das macht die Code einfacher zu testen und bindet es nicht an das Dateisystem.

Auf diese Weise endet Ihr Code wie folgt:

%Vor%

Und nenne es:

%Vor%

Oder

%Vor%

Oder in einem Test

%Vor%     
Nick Holt 17.06.2013, 07:38
quelle
4

Denken Sie darüber nach, mehrere überladene Methoden zu verwenden, um dem Benutzer der API die Wahl zu geben.

Denken Sie auch daran, ein InputStream zu übergeben, da es möglich ist, dass der Benutzer der API eine beliebige in der Speicherdarstellung der Daten verwenden möchte.

    
Uwe Plonus 17.06.2013 07:38
quelle
1

Das Design hängt von vielen Parametern ab, z. B. wer diese Methode verwenden wird. Wird es überladen, ist es intern, Paket-Ebene oder öffentliche API. Ich würde eher allgemein sein und zwei überladene Methoden anbieten:

  • eine, die in Path übergeben wird, was eine übliche Art ist, den Pfad zu einer Datei
  • anzugeben
  • und einer, der in InputStream durchgeht, d. h. allgemeine Darstellung des Eingabestroms von Bytes

    public void normalizeData (Pfad filePath) // Pfad ist eine allgemeine Methode zum Angeben des Dateipfads

    public void normalizeData (InputStream) // allgemeine Darstellung des Eingabestroms von Bytes

Aber wie gesagt, es hängt von Ihrer Projektspezifikation ab.

    
darijan 17.06.2013 07:45
quelle
0

Wenn Sie die Zeichenfolge übergeben, haben Sie in der Methode die Kontrolle darüber, wie die Datei geöffnet und das Dateihandle verwaltet wird. Sie zentralisieren diesen Code. Wenn Sie das Objekt File übergeben, duplizieren Sie den Dateibearbeitungscode überall dort, wo er aufgerufen wird. Also würde ich eine starke Präferenz für die erste haben.

    
David M 17.06.2013 07:36
quelle
0

Es hängt davon ab, ob Sie die Datei hanlde außerhalb der normalizeData-Methode oder nur innerhalb dieser Datei haben möchten. Wenn Sie vor oder nach dem Aufruf Ihrer normalizeData-Methode etwas in der Datei ausführen möchten, erstellen Sie ein Dateiobjekt außerhalb der normalizeData-Methode und übergeben Sie die Referenz an die Methode. Wenn NUR Ihre normalizeData-Methode an dem Dateiobjekt arbeiten muss, übergeben Sie einfach den Dateinamen an sie.

Hängt von Ihrem Bedarf ab und davon, wie Sie mit Ihrer Datei umgehen möchten.

    
Juned Ahsan 17.06.2013 07:37
quelle

Tags und Links