2

我确实想使用包get_itinjectionable。他们都很棒,但我面临一个问题。也许我的想法是错误的。

我的应用程序有两个单例,我想为不同的应用程序风格使用不同的基本 url。所以我用 baseUrl 值向单例构造函数添加了一个参数。

现在的问题是,injectable 只有@factoryParam作为注释。名字就说明了问题。它不适合单身人士。

该问题的最佳实践是什么?我是否应该摆脱构造函数注入并在单例中注入 baseUrl

var url = get_it.get<Config>();

或者这不是最好的主意吗?

4

1 回答 1

0

它可以通过几种方式实现,您可以为不同的环境注册不同的字符串,例如

@Environment("dev")
@Named("url") // in case if you injecting other strings
String get devUrl...

@Environment("stage")
@Named("url") // in case if you injecting other strings
String get stageUrl...

[更新示例]

@Environment("dev")
@injectable
class ExampleOne{
final String _url;

ExampleOne(@Named("url") this._url)
}

@Environment("stage")
@injectable
class ExampleTwo{
final String _url;

ExampleTwo(@Named("url") this._url);
}

或只有一类:

@injectable
class Example{
final String _url;
Example(@Named("url") this._url);
}
于 2021-01-26T10:25:00.290 回答