0

Ich arbeite an einem Web-App-Projekt, bei dem ich die Datei-Upload-Funktion neu gestalten muss. Unsere Datei-Upload-Funktion unterstützt mehrere Quellen zum Hochladen von Datei, wie git Repo, Nexus URL, ZIP-Dateien und wir wollen auch mehr unterstützen wie in der Zukunft. In der aktuellen Implementierung verfügt die Anwendung über mehrere Endpunkte zur Verarbeitung verschiedener Methoden, z. B. getNexusFile(), getGitFile(), getZipFile(); Unter jeder Methode gibt es eine Implementierung zum Abrufen von Dateien aus der angegebenen Quelle.Verwenden von Strategy Pattern zum Unterstützen des Hochladens von Dateien aus mehreren Quellen

Meine Idee ist es, alle diese Methoden in eine Methode namens getUploadFile() unter Verwendung Strategie Muster zusammenführen. Wie im Strategie-Muster könnten Algorithmen zur Laufzeit ausgewählt werden, so dass Dateien, die von verschiedenen Quellen hochgeladen wurden, gleich behandelt werden können, nachdem ich die richtige Strategie angegeben habe. Für jede Quelle erstelle ich eine Strategie dafür.

Meine Frage ist: Ist das eine gute Praxis des Entwurfsmusters? Gibt es einen besseren Ansatz, um diese Frage zu modellieren?

Dank

Antwort

1

Strategie-Muster ist ein gültiger Ansatz für dieses Problem.

Sie können weitere Implementierungen von FileUploader nach Bedarf hinzufügen.

+0

Dies ist nur sinnvoll, wenn der konkrete 'FileUploader' während der Lebensdauer des 'SomeClass'-Objekts nicht geändert wird. Wenn erwartet wird, dass ein einzelnes 'SomeClass'-Objekt verschiedene Dateien aus verschiedenen Quellen hochlädt, könnte die Verwendung einer * Factory-Methode * oder * Abstract Factory * besser geeignet sein. –

Verwandte Themen