【发布时间】:2020-06-10 23:08:50
【问题描述】:
我想要一个能够返回配置对象(例如 EnglishLocale)并使其在整个应用程序生命周期中可用的单例对象(即 ConfigManager)。 让我们举个例子:
- 用户第一次启动应用程序时,系统会要求他选择默认语言(例如英语、法语、意大利语...)。
- ConfigManager 单例是动态创建的,并绑定到 Locale 对象(包含该语言的所有硬编码字符串)。
当我需要一个特定的字符串时,我只需要做类似的事情
ConfigManager.instance.locale.myString;
现在,我查看了 here 以了解 Dart 中的工作原理。 Singleton 创建部分很清楚,但是我需要根据用户输入提供不同的配置。
查看下图以获得更示意图:
编辑 1,现在,这就是我目前所做的:
class ConfigManager {
Locale loc;
static ConfigManager _instance;
factory ConfigManager(Locale loc) => _instance ??= new ConfigManager._(loc);
ConfigManager._(Locale loc);
static get instance => _instance;
}
这样,当我决定获取一个特定的字符串时,我可以使用以下语法:
ConfigManager.instance.loc.presentation1body
这是初始化阶段
ConfigManager(new EnglishLocale());
但是我继续收到错误
"getter 在 null 上被调用"
我有点困惑,请帮帮我。
【问题讨论】:
标签: flutter dart configuration singleton