我想以一定的灵活性设计我的应用程序的文件存储部分,以便可以将文件存储在 S3 或 Web 服务器的硬盘上。
我还希望这在每个用户的基础上都是灵活的,因此在他们的用户设置中,他们可以选择是否要将他们的文件存储在 S3 或服务器文件系统中。
我在想这样的事情:
IFileStorage fs = FileStorageFactory.Instance(userSettings);
然后我会有一个看起来像这样的方法:
public static IFileStorage Instance(UserSettings setting)
{
if(setting == UserSettings.S3)
return new S3FileStorage();
}
这有意义吗?(我是 ac# 程序员,但我将在 Java 中执行此操作)
我正在使用 Spring,但我认为这里不会使用 DI,因为每个用户的实现都会发生变化。