java - 这是工厂模式的完美问题吗?

标签 java spring factory-pattern

我想以一定的灵 active 设计我的应用程序的文件存储部分,以便可以将文件存储在 S3 或 Web 服务器的硬盘驱动器上。

我还希望这在每个用户的基础上是灵活的,因此在他们的用户设置中,他们可以选择是希望将文件存储在 S3 中还是服务器文件系统中。

我在想这样的事情:

IFileStorage fs = FileStorageFactory.Instance(userSettings);

然后我会有一个看起来像这样的方法:

public static IFileStorage Instance(UserSettings setting)
{
     if(setting == UserSettings.S3)
         return new S3FileStorage();
}

这有意义吗? (我是一名 C# 程序员,但我将使用 Java 进行此操作)

我正在使用 Spring,但我认为这里不会使用 DI,因为实现会根据每个用户而变化。

最佳答案

工厂和依赖注入(inject)并不相互排斥。 Spring 有所谓factory-method生产 bean 类。您可以将参数传递给工厂方法,它可以是静态的或非静态的。

关于java - 这是工厂模式的完美问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348580/

相关文章:

java - 如何在 javadoc 注释中更改 javadoc 中表行的颜色

java - 使用 Java 将 ASN1 序列解码为 RSA 公钥

java - 使 POJO 线程安全

c# - 工厂模式构建许多派生类

c# - 为什么我不能通过 Type.GetType() 找到我在 app.config 中引用的插件实例的类型?

java - 如何避免工厂类中的 "cascading if\case"语句

java - 自定义标记图标谷歌地图android

java - Velocity 模板无法解析和显示 html 格式的数据

java - Spring Kafka 以 TCP 端口作为生产者

spring - 无法从外部计算机连接到kafka