首页 > 解决方案 > 如果两个类具有共同的字段,那么可以使用哪种设计模式,这样我们就不需要创建新的类了?

问题描述

在 Spring Boot 应用程序中,我在第一个 api 中返回一个UserResponseDTO ,如下所示

public class UserReponseDTO{
  private Long Id,
  private String field1,
  private String field2,
  private String field3,
  private String field4,
  private String field5,
  private String field6,
  
//setters and getters...
}

但根据第二个 API 的要求,我需要返回具有 2 个更多字段的响应 DTO。

public class NewReponseDTO{
  private Long Id,
  private String field1,
  private String field2,
  private String field3,
  private String field4,
  private String field5,
  private String field6,
 
  //new fields
  private String fields7,
  private String fields8
 
 //setters and getters...
}

可以使用哪种设计模式,以便我可以在运行时在UserResponseDTO中添加新字段,而不是创建新的 responseDTO

标签: javaspring-bootdesign-patterns

解决方案


您可以使用 extends 关键字示例

public class UserReponseDTO{
  private Long Id,
  private String field1,
  private String field2,
  private String field3,
  private String field4,
  private String field5,
  private String field6,
  
//setters and getters...
}

现在定义新类

public class NewReponseDTO extends UserReponseDTO{
private String fields7,
  private String fields8
 
 //setters and getters..
}

现在你不必重新定义已经定义的变量


推荐阅读