在 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
中,并被打印到控制台。