搜索
您的当前位置:首页正文

APP 组件化开发

来源:二三娱乐

基于业务逻辑,多个 APP 会调用同一模块,例如预约挂号、医社保查询等,组件化能够更好的实现跨App的代码和功能的复用, 能够更好的共享资源,避免重复造轮子。

而组件化将来必定会出现有多个模块,模块之间会通信,互相调用的情况。

问题1:各模块互相依赖

如何避免相互依赖,实现模块组件独立开发与维护?

Mediator模式,即中间件模式

各个模块直接都不需要再互相依赖,而是仅需要依赖 Mediator 层即可。但是,依赖关系并没有解除,Mediator 依赖了所有模块,而调用者又依赖 Mediator。

采用动态调用方式,去掉依赖

组件仅通过Target-Action暴露可调用接口

iOS基于runtime,Android基于发射机制实现动态调用

每个组件部分

Mediator : 封装动态调用的实现逻辑,也相当于一个基础组件。而各个业务组件,不需要知道Mediator的存在。只有在集成的时候才需要Mediator,实际上这可以只是一个类文件。

对于使用URL方式其他第三方APP调用组件的,也可以经过URL参数转换之后,使用本地APP调用组件的方式。

-  组件化方案中的去model设计

调用方如何知道接收方需要哪些key的参数?调用方如何知道有哪些target可以被调用?

每个组件,重载Mediator,封装好对外提供的接口。(Objective-C 的分类,Java 的继承)

- 动态调度考虑

切点:

以url parse为切点

以实例化target时为切点

以category调度方法为切点

以target下的action为切点

从服务端获取target-action配置列表,审查时检查当前action是否存在要被动态调度跳转的action,如果存在,则跳转到新的target-action

Top