带你读《2022技术人的百宝黑皮书》——一个搞定责任链的注解(2)
https://developer.aliyun.com/article/1339676?groupCode=taobaotech
实现原理
业务接口通过生成的Pipeline构造实现,Pipeline负责责任链的组装及调用链表的首个节点(head)。首个节点如果 处理完成有返回值,则直接返回;否则传递给下一个节点。如果处理到最后一个节点(tail)返回仍然为空,则直接返 回空。
以获取配置为例:
用 户 实 现 :
ConfigSource
用户自定义的 获取配置的接口
Handler实现:
MapConfigSourceHandler 、 SystemConfigSourceHandler
AutoPipeline生成
ConfigSourcePipeline
含义:责任链管道
核心作用:将ConfigSourceHandler 串联成链表
ConfigSourceHandlerContext
含义:Handler的上下文,相比传统责任链,新增了获取全局Pipeline的能力
AbstractConfigSourceHandlerContext
含义:Handler的上下文的抽象类
数据结构:主要由三个部分组成:pre、next、handler
核心作用:通过handler().get(key , findNextCtx()) 实现了 String get(String key) 方法
DefaultConfigSourceHandlerContext
持有ConfigSourceHandler对象的默认实现类
带你读《2022技术人的百宝黑皮书》——一个搞定责任链的注解(4)https://developer.aliyun.com/article/1339674?groupCode=taobaotech