2

我正在开发一个需要我重构文件上传功能的网络应用程序项目。我们的文件上传功能支持多种上传文件来源,例如git reponexus URLzip 文件,我们还希望将来支持更多,例如 perforce。在当前的实现中,应用程序有多个端点来处理不同的方法,例如getNexusFile(), getGitFile(), getZipFile(); 在每种方法下,都有从指定来源检索文件的实现。

我的想法是将所有这些方法合并为一个getUploadFile()使用Strategy Pattern调用的方法。与策略模式一样,可以在运行时选择算法,因此在我指定正确的策略后,可以无视从不同来源上传的文件。对于每个来源,我都会为其制定策略。

我的问题是:这是设计模式的好习惯吗?有没有更好的方法来模拟这个问题?

4

1 回答 1

2

策略模式是解决这个问题的有效方法。

Class SomeClass {
  private FileUploader fileUploader;
}

Interface FileUploader {
     public void uploadFile();
}

Class GitFileUploader implements FileUploader{
     public void uploadFile() {//Implementation for Git File Upload}
}

Class NexusFileUploader implements FileUploader {
     public void uploadFile() { //Implementation for Nexus }
}

您可以根据需要添加更多的实现FileUploader

于 2017-02-25T10:04:11.857 回答