多功能Job模块是否需拆分Bloc?Bloc结构选型咨询
职位管理场景的Bloc结构设计建议
针对你的业务场景,优先拆分独立Bloc,而非用单个Bloc包揽所有逻辑,具体方案如下:
拆分三个独立Bloc,各司其职
JobListBloc(职位列表Bloc)
核心职责:加载全量职位数据、处理列表页的收藏/取消收藏操作、维护列表状态(加载中/成功/失败、收藏状态实时更新),仅关联职位列表页面。JobCreateBloc(职位创建Bloc)
核心职责:处理创建职位的表单输入验证、发起职位创建请求、维护创建流程状态(输入中/提交中/创建成功/创建失败),仅关联职位创建页面。JobDetailBloc(职位详情Bloc)
核心职责:加载单个职位的详情数据、处理详情页内的收藏操作、维护详情状态(加载中/成功/失败),仅关联职位详情页面。
优化细节:共享核心逻辑+跨Bloc同步
- 抽离Repository层:把重复的API调用(比如收藏接口、职位数据接口)抽成独立的Repository,让三个Bloc都依赖这个Repository,避免代码冗余。
- 跨Bloc状态同步:比如在详情页收藏职位后,列表页需要同步更新对应职位的收藏状态,可以通过全局事件总线(Event Bus)或者让JobListBloc监听收藏变更事件来实现。
为什么不建议用单个Bloc?
- 单个Bloc会混杂列表、创建、详情三类完全不同的业务逻辑,Event和State数量会急剧膨胀,后期维护、测试难度陡增。
- 不同页面的状态会互相干扰,比如创建职位的提交状态可能会误影响列表页的加载状态显示,增加bug排查成本。
内容的提问来源于stack exchange,提问作者CCP
相关产品推荐
相关产品推荐

