在我当前的 Flutter 应用程序中,我有一个提供 3 个独立流的服务。
它封装了一个提供连接状态流和一些其他数据的实时客户端:
class MyService implements Disposable {
final StreamController<GameDataContract> _hubGameDataStreamController =
StreamController.broadcast();
final StreamController<String> _hubStreamController =
StreamController.broadcast();
final StreamController<PhraseEntryContract> _hubPhraseStreamController =
StreamController.broadcast();
....
Widget 树和我的 ViewModel 都使用这些。
我现在想转移到 Riverpod,但在如何设计提供这 3 种不同流(或通知程序,也可以工作)的服务方面遇到一些困难。
在我看来,一个给定的类只能在 Riverpod 中实现一种类型的数据,即:
class Counter extends StateNotifier<SomeDataType> {
...
...
我将如何实施提供多种类型通知/流的服务?
我封装的实时客户端将/必须是单例对象。
(它不为实时事件提供 Dart 流)