import 'dart:async'; class EventBus { static final EventBus _instance = EventBus._internal(); factory EventBus() => _instance; EventBus._internal(); final _controller = StreamController.broadcast(); // 发出任意事件 void emit(event) { _controller.add(event); } // 监听指定类型的事件 Stream on() { return _controller.stream.where((event) => event is T).cast(); } void dispose() { _controller.close(); } }