我的页面模块
架构说明
采用清洁架构(Clean Architecture)四层划分:
1. Domain 层(领域层)
entities/- 实体类(UserProfileEntity, MenuItemEntity)repositories/- 仓储接口(MyRepository)usecases/- 用例(GetMenuItemsUseCase, ToggleNightModeUseCase, ClearCacheUseCase)
2. Data 层(数据层)
models/- 数据模型(UserProfileModel, MenuItemModel)datasources/- 数据源接口和实现repositories/- 仓储实现(MyRepositoryImpl)
3. Presentation 层(表现层)
states/- 状态管理(MyState)cubit/- 业务逻辑(MyCubit)pages/- 页面(MyPage)widgets/- UI 组件(UserProfileCard, MenuItemCard)constants/- 常量定义(MyColors, MyDimensions)routes/- 路由配置(MyRoutes)
4. DI 层(依赖注入)
di/- 依赖注入配置(MyDependencyInjector)
功能特性
- 用户信息展示(头像、姓名、角色)
- 菜单列表(个人信息、消息设置、离线缓存、夜间模式等)
- 夜间模式切换
- 缓存清除功能
- 响应式状态管理(Cubit)
使用示例
import 'package:maibu_satabot_v2/features/v2/my/my.dart';
// 在路由配置中使用
GoRoute(
path: 'my',
name: 'my',
builder: (context, state) => const MyPage(),
),
数据流
- 初始化: MyPage 通过 MyDependencyInjector 创建 MyCubit
- 加载数据: MyCubit 调用 UseCase 获取数据
- 状态更新: 数据通过 Entity → State 传递给 UI
- 用户交互: UI 触发 Cubit 方法,更新状态
依赖关系
Presentation → Domain ← Data
↓ ↓
Cubit UseCase
↓ ↓
State Repository