应用架构演进

预则立
应用演进过程中可能出现混乱局面,对架构的考量应该放在项目开始之前
参考:
Android架构思考(模块化、多进程)

适用范围:中型项目,小项目就不需要杀鸡用牛刀了


不进行设计时应用可能出现极度混乱的局面:

跳过广受诟病的插件化思路,考虑应用路由框架设计组件化框架:

路由-1.png

这样的路由框架,在模块解耦的同时,提高了模块的可测性和复用性。
路由-3.png
还可以在router与各路由之间加入 Common-Base层,作为公共library:
路由-Common Base.png

在调用API时,路由机制的调用时序图:

Router时序图.png

这样的路由架构存在一个访问域问题,在多进程时需要进行格外处理

多进程优势:

  1. 独立各进程;
  2. 提高内存控制权;
  3. 模块解耦
  4. 守护

Router是单例模式,在多进程时直接使用会在每个JVM实例中生成,跨进程时需要将Router链接起来:

多进程路由连接图.png

这时,调用时序图层级就略微有点深了:

广域事件传递时序图.png

总结
路由架构可以高度解耦,提升可测试性,也便于项目组进行任务划分、并行开发;
缺点是调用层级略微有点深,会有一定的性能损耗,但与其带来的优势相比可以忽略;此设计也没有考虑到MVP架构设计的融合问题,需要考虑应用场景的引用和适度


关注公众号“夕识”,雕刻时光,雕刻思维

Powered by KyleCe

Copyright © 2015 - 2019 KyleCe All Rights Reserved.

访客数 : | 访问量 :