Flutter/Dart 中使用单例 + Provider 可以吗?

Ted*_*ddy 5 dart flutter

所以我正在开发一个 Flutter 应用程序。我有一个单例 GameManager,如下所示:

class GameManager extends ChangeNotifier {
  static final GameManager _singleton = GameManager._internal();

  factory GameManager() {
    return _singleton;
  }

  GameManager._internal();
}
Run Code Online (Sandbox Code Playgroud)

在我的入口点 main.dart 中:

  @override
  void initState() {
    super.initState();

    GameManager().connect(isConnected: () {
      DynamicLinksService().initDynamicLinks();
    });
  }

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider<GameManager>(create: (context) => GameManager()),
      ],
    ...
  }
Run Code Online (Sandbox Code Playgroud)
  1. GameManager().connect() 使用单例模式。
  2. 我在 main.dart 中使用 Provider,在页面中使用 Consumer 来监听 GameManager 中的状态。
  3. 我将其设置为单例,因为 connect() 和使用 GameManager 的提供程序都在 main.dart 中,并且我想在入口点中调用 connect() 。
  4. 单例+提供者/消费者可以吗?如果不是,5 是一个有效的选项吗?
  5. 删除单例。在我的主页中,通过消费者的 GameManger 调用 connect。