带参数的单例注入



我确实想使用get_it可注射的软件包。他们都很棒,但我面临着一个问题。也许我的想法是错误的。

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

现在的问题是,注射剂只能@factoryParam作为注释。名称显示问题。它不适合单身人士。

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

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

或者这不是最好的主意?

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

@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);
}

最新更新