handler_dispatcher.dart 467 B

12345678910111213141516171819202122
  1. import 'interface/handler.dart';
  2. /// 处理器调度员
  3. class HandlerDispatcher implements IHandlerProvider, IHandlerRegistrable {
  4. final Map<int, IHandler> _map = {};
  5. @override
  6. IHandler? getHandler(int type) {
  7. final handler = _map[type];
  8. return handler;
  9. }
  10. @override
  11. void register<T>(IHandler<T> handler) {
  12. _map[handler.typeInt] = handler;
  13. }
  14. @override
  15. void deregister<T>(IHandler<T> handler) {
  16. _map.remove(handler.typeInt);
  17. }
  18. }