Dubbo 源码使用了哪些设计模式?
责任链模式:责任链中的每个节点实现 Filter 接口,然后由 ProtocolFilterWrapper,将所有 Filter 串连起来。
Dubbo 的许多功能都是通过 Filter 扩展实现的,比如监控、日志、缓存、安全、telnet 以及 RPC 本身都是。
观察者模式:消费者在初始化的时候回调用 subscribe 方法,注册一个观察者,如果观察者引 用的服务地址列表发生改变,就会通过 NotifyListener 通知消费者。
装饰器模式:比如 ProtocolFilterWrapper 类是对 Protocol 类的修饰。
工厂模式:如 ExtenstionLoader.getExtenstionLoader(Protocol.class).getAdaptiveExtenstion()。