用途:按推荐的分层方式架构 Flutter 应用,适用于新项目结构设计或为可扩展性进行重构。
主要能力:强制关注点分离,禁止将 UI 渲染与业务逻辑或数据获取混在一起。UI 层采用 MVVM:View 为可复用、精简的组件,仅保留动画、布局约束、简单路由等 UI 操作;ViewModel 管理 UI 状态与用户交互,继承 ChangeNotifier(或使用 Listenable)暴露不可变状态快照,并通过构造函数注入 Repository。数据层采用 Repository 模式:Service 为无状态类,封装外部 API(HTTP 客户端、本地数据库、平台插件),返回原始 API 模型或 Result 包装;Repository 消费一个或多个 Service,将原始模型转换为干净的领域模型,处理缓存、离线同步与重试,向 ViewModel 暴露领域模型。Logic 层(Domain)为可选:仅当业务逻辑复杂到干扰 ViewModel,或需在多个 ViewModel 间复用时,才抽取为 Use Case 类,置于 ViewModel 与 Repository 之间。
项目结构:采用混合方式,UI 组件按功能分组,Data/Domain 组件按类型分组,如 lib/data(models、repositories、services)、lib/domain(models、use_cases)、lib/ui(core、features/[feature_name]/view_models、views)。
使用方式:新增功能按顺序执行——定义领域模型(可用 freezed 或 built_value 创建不可变数据类);实现 Service;实现 Repository;按需应用领域层条件逻辑(复杂转换或跨仓库逻辑建 Use Case,简单 CRUD 跳过);实现 ViewModel;实现 View(用 ListenableBuilder 或 AnimatedBuilder 监听变化);在依赖注入容器(如 provider 或 get_it)注册 Service、Repository、ViewModel;运行 ViewModel 与 Repository 的单元测试,失败则修复逻辑后重跑直至通过。
限制:资料未提供该技能的安装命令、收费、价格、平台支持或效果数据,暂未提供。