DocCheckToolRefactored/README.MD

76 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 查重逻辑划分
### **1. 核心模块划分**
| 模块名 | 职责 | 包含内容 |
|--------|------|----------|
| **`core`** (核心逻辑) | 处理核心查重算法 | 文件遍历、哈希计算、查重逻辑 |
| **`io`** (I/O处理) | 文件系统交互 | 文件读取、内存映射、并行I/O优化 |
| **`model`** (数据模型) | 定义数据结构 | 文件元数据、哈希结果、查重报告 |
| **`ui`** (用户界面) | GUI展示 | JavaFX面板、控制器、事件处理 |
| **`util`** (工具类) | 公用功能 | 哈希工具、进度计算、日志记录 |
---
### **2. 模块依赖关系**
```mermaid
graph TD
ui --> core
ui --> model
core --> io
core --> model
core --> util
io --> util
```
---
### **3. 进阶模块(可选扩展)**
| 模块名 | 用途 |
|--------|------|
| **`api`** | 提供REST接口供其他系统调用 |
| **`cli`** | 命令行界面脱离JavaFX使用 |
| **`plugin`** | 支持扩展哈希算法或存储后端 |
---
### **4. 目录结构示例**
```
src/
├── main/
│ ├── java/
│ │ ├── top.r3.doc/
│ │ │ ├── core/
│ │ │ ├── io/
│ │ │ ├── model/
│ │ │ ├── ui/
│ │ │ ├── util/
│ │ │ └── Main.java (主入口)
│ └── resources/ (FXML/CSS)
└── test/ (对应模块的单元测试)
```
---
### **5. 关键设计原则**
1. **单一职责**:每个模块只做一件事(如`io`模块只处理I/O
2. **依赖倒置**:高层模块(如`ui`)依赖抽象(接口),不依赖具体实现
3. **可测试性**核心逻辑与UI分离便于单元测试
4. **扩展性**:通过策略模式(如`FileHashStrategy`)支持新哈希算法
---
### **6. 优化后的查重流程**
```mermaid
sequenceDiagram
UI->>+Core: 启动查重(rootPath)
Core->>+IO: 遍历文件(rootPath)
IO-->>-Core: 返回文件列表
loop 每个文件
Core->>+IO: 读取文件内容
IO-->>-Core: 返回字节数据
Core->>+Util: 计算哈希
Util-->>-Core: 返回哈希值
end
Core->>+Model: 生成查重报告
Model-->>-UI: 显示结果
```