我正在开发一个需要我重构文件上传功能的网络应用程序项目。我们的文件上传功能支持多种上传文件来源,例如git repo、nexus URL、zip 文件,我们还希望将来支持更多,例如 perforce。在当前的实现中,应用程序有多个端点来处理不同的方法,例如getNexusFile()
, getGitFile()
, getZipFile()
; 在每种方法下,都有从指定来源检索文件的实现。
我的想法是将所有这些方法合并为一个getUploadFile()
使用Strategy Pattern调用的方法。与策略模式一样,可以在运行时选择算法,因此在我指定正确的策略后,可以无视从不同来源上传的文件。对于每个来源,我都会为其制定策略。
我的问题是:这是设计模式的好习惯吗?有没有更好的方法来模拟这个问题?