前言
StatefulWidget 是Flutter 中的组件,巨型StatefulWidget 也就是大 dart文件,当前要重构的是一个4314 行,74 个方法,那么为什么要拆分这个文件呢,主要是大文件对AI工具不够友好,难以定位和修改功能。
📐 拆分架构模式
1 | ┌─────────────────────────────────────────┐ |
拆分层次说明
第一层:主页面 (StatefulWidget)
职责:
- 保留生命周期方法 (
initState,dispose,didChangeAppLifecycleState) - 保留核心 UI 状态(tab 索引、loading 状态等)
- 协调各个 Manager 的初始化和销毁
- 组装 UI 布局(使用 Widget 组件)
第二层:Manager 类(业务逻辑层)
职责:
- 数据加载和处理
- 业务逻辑执行
- 与外部服务交互(API、数据库)
- 通过回调通知主页面更新 UI
第三层:Widget 组件(UI 层)
职责:
- 可复用的 UI 组件
- 纯展示逻辑
- 通过参数接收数据
- 通过回调通知用户交互