个人密码管理器系统设计文档
一、系统概述
本系统是一个基于Java Swing的桌面端密码管理工具,提供密码信息的增删改查、界面化展示及基本搜索功能。系统采用分层架构设计,分为UI层、业务逻辑层和数据访问层。
二、核心功能模块
1. **密码信息管理**
- **数据展示**
- 通过JTable组件展示密码条目,包含以下字段:
`ID | 账户标题 | 用户名 | 密码 | 备注`
- 隐藏ID列的可视化显示,仅保留逻辑标识作用
- **增删改操作**
用户->>UI层: 点击"新增"按钮
UI层->>业务层: 触发onAddButtonDataReceived()
业务层->>数据层: 调用PwdCallService.addPassword()
数据层-->>业务层: 返回操作结果
业务层-->>UI层: 刷新表格数据
2. 界面交互组件
功能按钮模块
- 列表刷新(实时加载数据)
- 新增密码条目
- 编辑选中条目
- 删除选中条目(批量删除支持)
搜索功能
- 通过顶部输入框(titleField)输入账户标题关键词
- 调用`loadDataTableList()`方法过滤展示数据
3. 数据交互机制
回调接口设计
实现`ButtonCallbackInfc`接口统一处理按钮事件:
public interface ButtonCallbackInfc {
void onListButtonDataReceived(List list);
boolean onAddButtonDataReceived(AuthData data);
boolean onDelButtonDataReceived(DelData list);
boolean onUpdButtonDataReceived(AuthData data);
}
```
数据实体类
java
// 密码条目实体
class AuthData {
Long id;
String acctTitle; // 账户标题
String acctName; // 用户名
String passWord; // 密码
String notes; // 备注
}
三、技术选型说明
模块 | 技术/框架 | 选型理由 |
UI框架 | Java Swing | 轻量级桌面应用开发标准方案 |
数据绑定 | DefaultTableModel | 简单实现表格数据动态更新 |
事件处理 | 回调接口(Callback) | 解耦视图层与业务逻辑层 |
国际化 | ResourceBundle | 支持多语言扩展(messages.properties) |
四、系统架构图
A[用户界面层] -->|按钮事件| B[回调接口层]
B -->|数据操作| C[业务服务层]
C -->|数据库操作| D[数据访问层]
D --> E[数据存储]
A --> F[数据展示层]
五、扩展建议
1. **安全增强**
- 加密存储密码字段(当前明文存储)
- 添加用户身份验证机制
2. **功能扩展**
- 密码强度检测
- 自动填充功能
- 导出/导入数据功能
3. **UI优化**
- 添加密码生成器组件
- 实现暗色模式主题切换
- 增加操作日志记录
4.**多端适配**
-实现微信小程序版本
-实现vue版本等
六、数据流示例
A[用户输入搜索词] --> B[调用loadDataTableList()]
B --> C[清空表格数据]
B --> D[调用PwdCallService.getPasswords()]
D --> E[获取过滤后的数据列表]
E --> F[通过onListButtonDataReceived()填充表格]
本设计文档基于当前代码实现范围编写,实际系统需结合具体数据存储方案(如MySQL/SQLite)和加密策略完善安全设计。