Dart中如何实现Singleton模式?
class Singleton {
Singleton._internal();
factory Singleton() => _instance;
static late final Singleton _instance = Singleton._internal();
}
我们就可以像下面这样使用普通构造函数的方式获取到单例了
final singleton = Singleton();
Flutter 中的单例
// 获取主题颜色
Theme.of(context).primaryColor
// 添加监听器
WidgetsBinding.instance.addObserver(this);
SharedPreferences
SharedPreferences 用于存储简单的键值对数据,比如用户设置和轻量级数据缓存。 它在整个应用中是一个单例实例。
import 'package:shared_preferences/shared_preferences.dart';
Future<void> saveData(String key, String value) async {
SharedPreferences prefs = await SharedPreferences.getInstance(); // 单例获取
await prefs.setString(key, value);
}
Future<String?> getData(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance(); // 单例获取
return prefs.getString(key);
}