UITableView超级解耦--模块化框架

背景

  • iOS原生开发中,VC逻辑过于臃肿的case中,有相当的部分是来自UITableView的复杂逻辑难以抽离;
  • 当一个VC中主要展示形式是feed流,TableView自然的作为页面容器;当feed流中展示的cell种类越来越多,业务来源越趋于复杂时,如果在开始未考虑长远的迭代方向和页面行为,渐渐地 逻辑的梳理和阅读变的越发痛,逻辑的分类和抽离变的越发难;

主要解耦设计

  • 子模块类(通常以 相似 && 相邻 && 同业务归属等属性 来划分):
    • 遵循tableVIew的 数据源和代理协议,类注册于 页面tableView containerVC中;
    • 实现tableVIew所需 代理+数据源 方法;
    • 注册对数据源的监听 / 回调逻辑,触发刷新;
  • 页面tableView containerVC中:
    • 注册子模块类/对象,用于计算 tableView 数据源方法返回值 和 转发代理方法事件;
    • 实例化 并持有 pageInfoCenter 对象,存入页面基本信息;

脚手架:

  • RAC 函数式 / 响应式编程 范式;
  • pageInfoCenter 对象,作为页面所需信息的汇总,共享于页面内所有模块;

适用场景

  • 相似 cell 相邻
  • cell 复用场景少
  • 货架类 等页面

FAQ

你可能感兴趣的:(UITableView超级解耦--模块化框架)