以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。
这节我们介绍的是如何跨module交互,大家可以先思考一下下面的问题。
你考虑过android studio设计module的独立性?
你是否考虑过module之间可以如何交互通信,传递信息?
如果移除module的依赖的时候,依然能让交互的代码不产生崩溃?
希望看完这一节,希望对大家有一定的启发。
1.上层module和下层module的交互
(1)如果module是上下层的关系(例如一个module 依赖一个base的module)那么上层的module是可以直接获取base module的接口,达到信息取得的。
(2)那么base module并不会依赖于上层的module的(这是设计的初衷),那么如何获取上层module的信息呢?这里其实就可以简单用到抽象接口的调用父类的实现了。
这一切都是源于module之间的依赖形态所可以达到的效果
这是我们只要module依赖都会遇到过的问题。
2.两个相同层的module通信
可以想象两个相同层的module如果相互之间并没有直接的依赖关系,我们是没法传输到数据的。
那么用EventBus事件总线呢?是否有人试过?
试验过都会被modules间的这道墙所隔离。(EventBus只能用在单module里通信)
可以想象使用boardcast ,这是安卓本身系统带有可以整个系统里告知信息,通过boardcast广播应该是可以做到的传输的,唯一不好的地方就是其效率不高(至少会比EventBus要低)
也会有人提到数据库?但是如果你一直在监听着某些数据的变化,也会产生有一定的消耗的。
那为何module间不直