美文网首页
APP 组件化开发

APP 组件化开发

作者: Jagtu | 来源:发表于2018-03-13 17:06 被阅读30次

    基于业务逻辑,多个 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

    参考:iOS应用架构谈 组件化方案  

    相关文章

      网友评论

          本文标题:APP 组件化开发

          本文链接:https://www.haomeiwen.com/subject/reyzfftx.html