一、项目整体架构设计
按照分层的架构思想,从下到上分为ShareLib(共享库)层、Core(核心功能)层、Business(业务逻辑)层、App(应用展示)层。
架构优势:
- 严格控制各层的职责范围,使得底层库实现工程间复用且无缝替换,上层业务无感知。
- 由上到下采用单向依赖原则,防止业务逻辑侵入底层库,扩大影响范围。
- 采用远程依赖方式引用,避免代码误修改问题。
模块内架构设计及模块间交互设计
采用官方推荐UDF(单向数据流)模式,以及职责分离原则设计业务功能开发规范。
使用UDF模式的好处:
将界面分为界面元素(例如TextView)和界面状态(例填充TextView的数据)。UDF可为状态提供周期建模,还将”状态变化来源位置“、”转换位置“、”最终使用位置“分离开来。这种分离可以让界面只发挥其显示信息的作用。
最终UDF实现了以下三点:
数据一致性。界面只有一个可信来源。
可测试性。状态来源是独立的,因此可以独立于界面进行测试。
可维护性。状态的更改遵循明确定义的模式,即状态更改是用户事件及其数据拉取来源共同作用的结果。
通过职责划分,区分不同的逻辑类型,避免出现大型类
将逻辑分为界面逻辑和业务逻辑
所有耗时的业务逻辑均通过异步实现,保证了界面显示流畅
更方便的替换界面样式,从而不影响业务逻辑处理。
数据访问实现隔离
在数据层将业务逻辑与数据访问通过接口隔离,可以方便的替换底层的数据访问实现。例如网络请求库、数据库、键值对访问库。