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
Oder sollte ich den Parameter explizit als File
deklarieren.
Ich persönlich finde File
intuitiver, möchte aber wissen, was für solche Dinge am besten geeignet ist.
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%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.
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:
Path
übergeben wird, was eine übliche Art ist, den Pfad zu einer Datei 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.
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.
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.