Flutter Dart 代码实现发布订阅模式

8 min read

在 Dart 中,可以使用 Stream 类来实现发布订阅模式。

这是一个简单的示例,展示了如何在一个类中创建一个 Stream 并在另一个类中订阅它:

import 'dart:async';

class Publisher {
  StreamController _streamController = StreamController.broadcast();

  Stream get stream => _streamController.stream;

  void publish(data) {
    _streamController.add(data);
  }
}

class Subscriber {
  Subscriber(Publisher publisher) {
    publisher.stream.listen((data) => print(data));
  }
}

void main() {
  var publisher = Publisher();
  var subscriber = Subscriber(publisher);

  publisher.publish('hello');
}

在这个示例中,Publisher 类具有一个 Stream 和一个 publish 方法。Subscriber 类接收一个 Publisher 对象作为参数,并通过调用 listen 方法订阅它的 stream

当调用 publisher.publish('hello') 时,字符串 'hello' 将作为数据添加到 Stream 中,并被打印到控制台。