(1). 概述

前面对RemoteServerConnection的源码进行剖析,它的主要职责是:dispatch和reply,其中,在dispatch里又委托给了:HandlerRegistry处理,在这一小篇,主要剖析:HandlerRegistry.

(2). HandlerRegistry

final class HandlerRegistry {
  private final Map<String, BiConsumer<ProtocolRequest, ServerConnection>> handlers = new ConcurrentHashMap<>();

  void register(final String type, final BiConsumer<ProtocolRequest, ServerConnection> handler) {
    handlers.put(type, handler);
  }

  void unregister(final String type) {
    handlers.remove(type);
  }

  BiConsumer<ProtocolRequest, ServerConnection> get(final String type) {
    return handlers.get(type);
  }
}

(3). 总结

HandlerRegistry是一个中介模式,仅仅只是对载体进行存储而已,但是,是否值得考虑下,到底是如何与业务通信的呢?下一小篇重点剖析.