5.1 KiB
5.1 KiB
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
问题: 存在多层嵌套的静态内部类
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;
}
}
}
}
建议修复方案:
- 创建
KlingLipSyncQueryData.java - 创建
KlingLipSyncQueryTaskInfo.java - 创建
KlingParentVideo.java - 创建
KlingLipSyncQueryTaskResult.java - 创建
KlingLipSyncVideo.java - 更新
KlingLipSyncQueryResponse.java使用新类
待修复 2: KlingLipSyncQueryRespVO.java
问题: 与 KlingLipSyncQueryResponse.java 类似,存在多层嵌套的静态内部类。
建议修复方案: 与上面类似,创建对应的VO类。
待修复 3: 其他文件中的静态内部类
以下文件可能也需要检查:
AppAiChatMessageRespVO.javaAppAiChatMessageSendRespVO.javaLatentsyncSubmitResponse.javaAppTikLatentsyncResultRespVO.java
重构的好处
✅ 已实现的好处
- 更好的代码可读性 - 独立类更清晰
- 便于单元测试 - 可以单独测试每个类
- 更好的序列化兼容性 - 避免静态内部类的序列化问题
- 符合最佳实践 - VO/DTO应该使用顶级类
- 使用更方便 - 无需通过外部类访问
📊 对比
| 修复前 | 修复后 |
|---|---|
KlingLipSyncCreateRespVO.Data data |
KlingLipSyncCreateDataVO data |
KlingLipSyncCreateReqVO.FaceChooseVO face |
KlingFaceChooseVO face |
new KlingLipSyncCreateReqVO.FaceChooseVO() |
new KlingFaceChooseVO() |
建议的修复顺序
优先级 1 (高)
KlingLipSyncQueryResponse.java- 使用广泛,影响大KlingLipSyncQueryRespVO.java- 与上面配对
优先级 2 (中)
- 检查并修复其他模块的VO/DTO静态内部类
优先级 3 (低)
- 编写测试用例验证修复后的类
注意事项
- 保持命名一致性 - VO类使用
*VO后缀,DTO类使用普通名称 - 同步更新引用 - 修改后需要更新所有引用这些类的文件
- 测试重要性 - 确保JSON序列化/反序列化正常工作
- 文档更新 - 更新API文档以反映新的类结构
总结
到目前为止,已成功修复了 6个文件 的静态内部类问题,创建了 6个新的独立类。这些修复提高了代码质量和可维护性,为后续的维护和扩展奠定了良好基础。
建议继续完成剩余文件的修复,特别是 KlingLipSyncQueryResponse.java 和 KlingLipSyncQueryRespVO.java,因为它们被广泛使用。