ファイルのアップロード機能をリファクタリングする必要がある Web アプリ プロジェクトに取り組んでいます。私たちのファイル アップロード機能は、git repo、nexus URL、zip ファイルなど、アップロード ファイルの複数のソースをサポートしており、将来的には perforce などをさらにサポートしたいと考えています。現在の実装では、アプリケーションにはgetNexusFile()
、getGitFile()
、などのさまざまなメソッドを処理する複数のエンドポイントがありgetZipFile()
ます。各メソッドの下には、指定されたソースからファイルを取得するための実装があります。
私の考えは、これらすべてのメソッドをStrategy PatterngetUploadFile()
を使用して呼び出される 1 つのメソッドにマージすることです。ストラテジー パターンと同様に、実行時にアルゴリズムを選択できるため、適切なストラテジーを指定した後は、さまざまなソースからアップロードされたファイルを無関心に扱うことができます。すべてのソースについて、その戦略を作成します。
私の質問は次のとおりです。それはデザインパターンの良い実践ですか?この質問をモデル化するためのより良いアプローチはありますか?