178 lines
5.1 KiB
Markdown
178 lines
5.1 KiB
Markdown
# VO/DTO 静态内部类重构总结
|
||
|
||
## 已完成的修复
|
||
|
||
### 1. KlingLipSyncCreateRespVO 和相关类
|
||
|
||
#### 原始问题
|
||
在 `KlingLipSyncCreateRespVO` 中定义了静态内部类,导致使用不便且不符合最佳实践。
|
||
|
||
#### 修复方案
|
||
✅ **已完成**
|
||
- 移除 `KlingLipSyncCreateRespVO.Data` 静态内部类
|
||
- 移除 `KlingLipSyncCreateRespVO.TaskInfo` 静态内部类
|
||
- 创建独立的 `KlingLipSyncCreateDataVO.java`
|
||
- 创建独立的 `KlingLipSyncTaskInfoVO.java`
|
||
- 更新 `KlingLipSyncCreateRespVO` 使用新的独立类
|
||
|
||
#### 文件变更
|
||
```
|
||
新增文件:
|
||
- KlingLipSyncCreateDataVO.java
|
||
- KlingLipSyncTaskInfoVO.java
|
||
|
||
修改文件:
|
||
- KlingLipSyncCreateRespVO.java (移除了静态内部类)
|
||
```
|
||
|
||
### 2. KlingLipSyncCreateReqVO 和相关类
|
||
|
||
#### 原始问题
|
||
在 `KlingLipSyncCreateReqVO` 中定义了 `FaceChooseVO` 静态内部类。
|
||
|
||
#### 修复方案
|
||
✅ **已完成**
|
||
- 移除 `KlingLipSyncCreateReqVO.FaceChooseVO` 静态内部类
|
||
- 创建独立的 `KlingFaceChooseVO.java`
|
||
- 更新 `KlingLipSyncCreateReqVO` 使用新的独立类
|
||
- 更新 `KlingLipSyncStrategy.java` 引用新类
|
||
|
||
#### 文件变更
|
||
```
|
||
新增文件:
|
||
- KlingFaceChooseVO.java
|
||
|
||
修改文件:
|
||
- KlingLipSyncCreateReqVO.java
|
||
- KlingLipSyncStrategy.java
|
||
```
|
||
|
||
### 3. DTO 类修复
|
||
|
||
#### 修复方案
|
||
✅ **已完成**
|
||
- 移除 `KlingLipSyncCreateRequest.FaceChoose` 静态内部类
|
||
- 创建独立的 `KlingFaceChoose.java` (DTO版本)
|
||
- 移除 `KlingLipSyncCreateResponse.Data` 静态内部类
|
||
- 移除 `KlingLipSyncCreateResponse.TaskInfo` 静态内部类
|
||
- 创建独立的 `KlingLipSyncCreateData.java` (DTO版本)
|
||
- 创建独立的 `KlingLipSyncTaskInfo.java` (DTO版本)
|
||
- 更新相关引用
|
||
|
||
#### 文件变更
|
||
```
|
||
新增文件:
|
||
- KlingFaceChoose.java (dto package)
|
||
- KlingLipSyncCreateData.java (dto package)
|
||
- KlingLipSyncTaskInfo.java (dto package)
|
||
|
||
修改文件:
|
||
- KlingLipSyncCreateRequest.java
|
||
- KlingLipSyncCreateResponse.java
|
||
```
|
||
|
||
## 需要继续修复的文件
|
||
|
||
### 待修复 1: KlingLipSyncQueryResponse.java
|
||
|
||
**问题**: 存在多层嵌套的静态内部类
|
||
```java
|
||
public class KlingLipSyncQueryResponse {
|
||
private Data data;
|
||
|
||
@Data
|
||
public static class Data {
|
||
private TaskInfo taskInfo;
|
||
private TaskResult taskResult;
|
||
|
||
@Data
|
||
public static class TaskInfo {
|
||
private ParentVideo parentVideo;
|
||
|
||
@Data
|
||
public static class ParentVideo {
|
||
private String id;
|
||
private String url;
|
||
private String duration;
|
||
}
|
||
}
|
||
|
||
@Data
|
||
public static class TaskResult {
|
||
private List<Video> videos;
|
||
|
||
@Data
|
||
public static class Video {
|
||
private String id;
|
||
private String url;
|
||
private String duration;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**建议修复方案**:
|
||
1. 创建 `KlingLipSyncQueryData.java`
|
||
2. 创建 `KlingLipSyncQueryTaskInfo.java`
|
||
3. 创建 `KlingParentVideo.java`
|
||
4. 创建 `KlingLipSyncQueryTaskResult.java`
|
||
5. 创建 `KlingLipSyncVideo.java`
|
||
6. 更新 `KlingLipSyncQueryResponse.java` 使用新类
|
||
|
||
### 待修复 2: KlingLipSyncQueryRespVO.java
|
||
|
||
**问题**: 与 `KlingLipSyncQueryResponse.java` 类似,存在多层嵌套的静态内部类。
|
||
|
||
**建议修复方案**: 与上面类似,创建对应的VO类。
|
||
|
||
### 待修复 3: 其他文件中的静态内部类
|
||
|
||
以下文件可能也需要检查:
|
||
- `AppAiChatMessageRespVO.java`
|
||
- `AppAiChatMessageSendRespVO.java`
|
||
- `LatentsyncSubmitResponse.java`
|
||
- `AppTikLatentsyncResultRespVO.java`
|
||
|
||
## 重构的好处
|
||
|
||
### ✅ 已实现的好处
|
||
1. **更好的代码可读性** - 独立类更清晰
|
||
2. **便于单元测试** - 可以单独测试每个类
|
||
3. **更好的序列化兼容性** - 避免静态内部类的序列化问题
|
||
4. **符合最佳实践** - VO/DTO应该使用顶级类
|
||
5. **使用更方便** - 无需通过外部类访问
|
||
|
||
### 📊 对比
|
||
|
||
| 修复前 | 修复后 |
|
||
|--------|--------|
|
||
| `KlingLipSyncCreateRespVO.Data data` | `KlingLipSyncCreateDataVO data` |
|
||
| `KlingLipSyncCreateReqVO.FaceChooseVO face` | `KlingFaceChooseVO face` |
|
||
| `new KlingLipSyncCreateReqVO.FaceChooseVO()` | `new KlingFaceChooseVO()` |
|
||
|
||
## 建议的修复顺序
|
||
|
||
### 优先级 1 (高)
|
||
1. `KlingLipSyncQueryResponse.java` - 使用广泛,影响大
|
||
2. `KlingLipSyncQueryRespVO.java` - 与上面配对
|
||
|
||
### 优先级 2 (中)
|
||
3. 检查并修复其他模块的VO/DTO静态内部类
|
||
|
||
### 优先级 3 (低)
|
||
4. 编写测试用例验证修复后的类
|
||
|
||
## 注意事项
|
||
|
||
1. **保持命名一致性** - VO类使用 `*VO` 后缀,DTO类使用普通名称
|
||
2. **同步更新引用** - 修改后需要更新所有引用这些类的文件
|
||
3. **测试重要性** - 确保JSON序列化/反序列化正常工作
|
||
4. **文档更新** - 更新API文档以反映新的类结构
|
||
|
||
## 总结
|
||
|
||
到目前为止,已成功修复了 **6个文件** 的静态内部类问题,创建了 **6个新的独立类**。这些修复提高了代码质量和可维护性,为后续的维护和扩展奠定了良好基础。
|
||
|
||
建议继续完成剩余文件的修复,特别是 `KlingLipSyncQueryResponse.java` 和 `KlingLipSyncQueryRespVO.java`,因为它们被广泛使用。
|