我正在开发一个网络应用项目,需要我重构文件上传功能。我们的文件上传功能支持多种上传文件来源,例如 git repo , nexus网址, zip文件,我们还希望支持更多内容,例如未来的力量。在当前实现中,应用程序具有多个端点来处理不同的方法,例如getNexusFile()
,getGitFile()
,getZipFile()
;在每种方法下,都有从指定源检索文件的实现。
我的想法是使用策略模式将所有这些方法合并到一个名为getUploadFile()
的方法中。与战略模式一样,
算法可以在运行时选择,因此在指定正确的策略后,可以无差别地处理从不同来源上传的文件。对于每个来源,我都会为它制定策略。
我的问题是:设计模式是一个很好的做法吗?有没有更好的方法来模拟这个问题?
答案 0 :(得分: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
的实现。