Dart 的Singleton模式

25 阅读1分钟

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

singleton-pattern