我已经尝试过搜索这个但是还没有真正找到解决方案所以决定发帖提问。
我正在开发一个用户将输入IP(SNMP设备)的应用程序,我的应用程序需要连接到它并使用它。在应用程序运行期间,用户可能会提供另一个IP地址,然后我需要连接到第二个IP地址,同时保持两个连接处于活动状态(作为单例)。
我的问题是我无法在概念上绕过这个问题。我的连接模块现在类似于以下内容:
@Override
Configure() {
String ip = first ip;
}
@Provides
Connect connect() {
// connect to ip
return connection;
}
有人可以在这里给我一些提示吗?
答案 0 :(得分:1)
您应该将IP地址作为Connect类构造函数的参数传递。然后,您可以查看FactoryModuleBuilder,以便可以在代码中为Connect类注入依赖项。至于你对单身人士的要求,我不太清楚你的意思。根据定义,单例意味着只有一个类的实例。在这里,你想要两个(或可能更多)。我怀疑的是,在整个应用程序中,每个IP字符串最多只需要一个Connect实例。如果是这种情况,您的工厂需要比FactoryModuleBuilder自动创建的工厂更聪明一些。它可能是一个单例本身并存储一个索引(map?concurrent map?cache?它取决于你的线程安全要求)的ip - >连接已经创建的实例。
希望它有所帮助。