什么是桥
桥是一种中介的桥梁,用于连接两个不能直接接触的对象,有了桥,就可以提供过去无法支持的能力
背景
公司项目最近在推进平台化,其他业务方要求使用主工程内的播放铃声功能。时间紧迫,没有时间将铃声播放模块下沉到Pod中,但是依旧要满足其他业务方的要求。所以就有了桥,主项目和Pod之间的链接纽带。
实际业务场景
目前项目没有将打印功能下沉到Pod中,第三方库B要调用主工程中的打印功能。
当前注意点
- Pod中无法调用主工程的功能,但是主工程能够调用Pod中的功能
架构设计
桥设计架构图说明
-
WXAsssert
的likeY()
函数是主工程的打印功能 -
WXLikeBridge
继承自NSObject
,实现了WXLogBridging
协议。+load
方法中要将protocol-self
注册到WangXinObject
对象中 -
WXSecondFileMgr
是第三方库,库中某个位置调用了主工程打印功能,获取对象的方法是WangXinObject
的theClassForTheProtocol:
-
WangXinObject
中pros是字典,存储Protocol,Class
键值对
优缺点
- 优点
i.功能模块不下沉,依旧可以提供打印功能支持
ii.将项目中多个不便下沉的模块通过桥来对外实现功能 - 缺点
i.架构稍微复杂些
网友评论