模块化解耦框架RxFluxArchitecture1-框架简介

1,855 阅读2分钟

相关系列文章

模块化解耦框架RxFluxArchitecture1-框架简介

模块化解耦框架RxFluxArchitecture2-基本功能实现

模块化解耦框架RxFluxArchitecture3-订阅管理绑定生命周期

模块化解耦框架RxFluxArchitecture4-依赖库与依赖注入

模块化解耦框架RxFluxArchitecture5-Application多模块共存

架构介绍

架构图.jpg
模块化解耦框架 RxFluxArchitecture 采用单向数据流架构 Flux 和双向绑定架构 MVVM。

架构分为三个层级 View,ActionCreator,Store。

1、View

UI 界面,根据用户交互调用 ActionCreator 方法,响应 ActionCreator 或 Store 发送的通知,完成 UI 更新。

2、ActionCreator

完成用户交互操作(接口调用、耗时操作、页面跳转通知等),通知 Store 或 View。

  • 发送封装操作结果的通知RxAction到 Store;
  • 发送 UI 响应通知RxChange到 View;
  • 发送操作异常通知RxError到 View;
  • 发送操作异常重试通知RxRetry到 View;
  • 发送操作进度通知RxLoading到 View。

3、Store

维护 View 中需要的数据,接收操作结果通知RxAction,提取其中封装的数据供 View 使用,处理不同的业务逻辑。

  • 发送 UI 响应通知RxChange到 View,进行 UI 更新;
  • 通过LiveData使 View 进行 UI 更新。

框架特点

1、单向数据流

使用 FaceBook 推出的前端架构 Flux,数据朝单一方向流动,无操作方法回调,上下层级关系明显,逻辑清晰。

2、层级解耦

核心库core-eventbus(带有 Tag 功能)实现数据总线功能,架构中上一层级不持有下一层级对象,本层级只需完成操作并发送通知,不需要知道下一层级谁来响应通知。

3、双向绑定

  • Store 可以通过androidx.lifecycle.LiveData<T>实现 MVVM 架构,通知 View 进行 UI 更新。
  • Store 继承androidx.lifecycle.ViewModel,在 View 横竖屏切换时维持数据。

4、订阅管理绑定生命周期

  • Store 实现androidx.lifecycle.LifecycleObserver,自动关联 View 生命周期。
  • View、Store 跟随 View 生命周期自动注册订阅、取消订阅。

5、模块化中依赖注入实现

核心库core-arch中使用 Dagger.Android 实现依赖注入,业务模块仅需创建@Module标注的依赖注入对象生成库, 无需知道如何实现依赖注入。

6、Application多模块共存

核心库core-arch-annotationscore-arch通过注解编译时生成代码和反射实现多个业务模块共存 Application 生命周期方法代理类。

7、单元测试

框架图.jpg

源码

开源模块化解耦框架RxFluxArchitecture,欢迎大家点赞Fork,更欢迎点评指导。