REFACTOR_EVALUATION.md 2.0 KB

Auth 模块文件简化评估

📊 当前文件分析

1. constant/UiConstants.kt - UI 常量

内容:只有4个常量(MSG_LOGIN_SUCCESS, MSG_LOGIN_FAILED, MSG_REGISTER_SUCCESS, MSG_REGISTER_FAILED)

使用情况

  • ✅ 只在 LoginViewModelRegisterViewModel 中使用
  • ❌ 只有4个常量,不值得单独文件

建议:✅ 删除,将常量内联到 ViewModel 的 companion object


2. utils/JWTUtil.kt - JWT 解析工具

内容:JWT Token 解析和过期检查

使用情况

  • ✅ 只在 TokenStoreAuthManager 中使用
  • ✅ JWT 解析是认证模块的核心功能

建议:✅ 合并到 TokenStore,将 JWTUtil 的方法合并到 TokenStore 中作为私有方法


3. storage/TokenStore.kt - Token 存储

内容:Token 的存储、读取、清除

使用情况

  • ✅ 在 AuthManagerAuthLocalDataSourceImpl 等地方广泛使用
  • ✅ 虽然使用 StorageImpl,但提供了业务语义封装(saveToken vs putString)

建议:✅ 保留,但合并 JWTUtil 的功能

理由

  1. ✅ 提供业务语义(saveToken, getAccessToken 等)
  2. ✅ 统一 Key 管理(KEY_ACCESS_TOKEN 等)
  3. ✅ 封装业务逻辑(isLoggedIn 结合 JWT 验证)

🎯 优化方案

方案:简化为 1 个文件

app/auth/
├── storage/
│   └── TokenStore.kt  ← 合并 JWTUtil 的功能
└── ui/
    └── viewmodel/
        ├── LoginViewModel.kt   ← 内联 UiConstants
        └── RegisterViewModel.kt  ← 内联 UiConstants

删除

  • constant/UiConstants.kt → 内联到 ViewModel
  • utils/JWTUtil.kt → 合并到 TokenStore

保留

  • storage/TokenStore.kt(合并 JWTUtil 后)

✅ 结论

  1. UiConstants - 删除,内联到 ViewModel
  2. JWTUtil - 删除,合并到 TokenStore
  3. TokenStore - 保留(合并 JWTUtil 后),必要的业务封装