Zuikyo / ZIKRouter

Interface-oriented router for discovering modules, and injecting dependencies with protocol in Objective-C and Swift.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

有几点疑问,问问作者

HaoXianSen opened this issue · comments

commented

业务模块之间的通讯无法无法独立,按照你方式,因为他必须得需要知道协议,要不然编译都无法通过,那么协议又该放到哪呢?如果放到本库中,那么其他库用到就得依赖本库,除非协议单独提出来,如果协议单独提出来,按照你的设计思路,协议会很多?

commented

如果A模块需要用到B模块,理想的实现是在A模块里就声明并使用一个 RequiredBProtocol,然后在宿主环境里把对 RequiredBProtocol 的调用都转发到真正的 B 模块实现里(ProvidedBProtocol)。
不过这么搞稍微有点复杂,简单点的话可以把这些 protocol 都放到一个专门用来放置 protocol 的库,用起来方便一点。
可以参考 模块适配器