# 我的页面模块 ## 架构说明 采用清洁架构(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) ## 使用示例 ```dart import 'package:maibu_satabot_v2/features/v2/my/my.dart'; // 在路由配置中使用 GoRoute( path: 'my', name: 'my', builder: (context, state) => const MyPage(), ), ``` ## 数据流 1. **初始化**: MyPage 通过 MyDependencyInjector 创建 MyCubit 2. **加载数据**: MyCubit 调用 UseCase 获取数据 3. **状态更新**: 数据通过 Entity → State 传递给 UI 4. **用户交互**: UI 触发 Cubit 方法,更新状态 ## 依赖关系 ``` Presentation → Domain ← Data ↓ ↓ Cubit UseCase ↓ ↓ State Repository ```