知识卡片
Provider模式把接口定义与生成逻辑分离
内容
Fabric源码大量使用Provider Pattern(提供者模式)分离接口定义与具体实现:XXX是只声明方法、不含字段的接口类型,xxxImpl/YXXX是真正实现该接口并持有状态的类型;而XXXProvider本身不直接实现核心功能,只负责生成或获取XXX接口/实现对象的方法,由xxxProviderImpl具体实现”如何构造出一个可用的XXX”。这相当于把”这个东西能做什么”(接口)、”它具体怎么做”(实现)、”它是怎么被造出来的”(provider)拆成三层,读源码时按这个套路去找对应类型,能快速定位到真正的业务逻辑而不被构造细节干扰。
参考来源
《Hyperledger Fabric技术内幕:架构设计与实现原理》第1章《区块链基础与Hyperledger Fabric架构》