多人协作|RecyclerView列表模块新架构设计
- 多人协作设计图
- 新架构设计与实现
- 设计背景与新需求
- 新架构设计
多人协作设计图
-
根据产品设计,将首页列表即将展示内容区域,以模块划分成多个。令团队开发成员分别承接不同模块进行开发,且互不影响任务开发,
模块数据结构亦可分别加载|提高渲染速度|降低渲染等待时间
。任务开发解耦,节省开发时间、开发效率翻倍。
-
依据实现多人协作的RecyclerView列表新架构设计,汇聚已开发模块任务后,执行流程图展示如下
新架构设计与实现
设计背景与新需求
如开源项目中已实现的仿招商银行首页 —— RecyclerView列表。传统意义实现方案,列表的Item各模块定义且实现在RecyclerView.Adapter
中,或与之强关联。(缺点)若多人协作开发,则会出现多人修改同一文件情景,造成冲突。开发冲突、调试冲突、测试冲入,进度滞后。考虑到此,与之不同新架构实现方案可解决以上问题。将列表的Item各模块通过反射,以模块类泛型创建实例,数据绑定分发,从RecyclerView.Adapter
中解耦出来,模块可自由定义和逻辑实现。
新架构设计
- 定义UML类图关系如图
新架构类设计 | 解释说明 |
---|---|
dataItems | List<UIDataItem<数据Modle, RecyclerView.ViewHolder>>,RecyclerView列表数据容器。 |
dataTypes | SparseArray<UIDataItem<数据Modle, RecyclerView.ViewHolder>>,存储以键值对key=列表Item内容类型Int标识,value=UIDataItem的列表容器。 |
UIDataAdapter | 自定义Adapter类,继承自RecyclerView.Adapter。类中定义两个全局变量(1)dataTypes (2)dataItems 。除此之外是实现重写父类方法onCreateViewHolder ,并通过反射获得UIDataItem实现类子类 的泛型类型ViewHolder实例。 |
UIDataItem | 泛型抽象类型 UIDataItem<数据Model, RecyclerView.ViewHolder> 。定义RecyclerView列表中Item内容模块类型。 |
UIDataItem实现类子类 | 如 UIDataMenuItem<数据Model, RecyclerView.ViewHolder> extends UIDataItem。 |