我正在学习 DTO,我有一个问题。 这两个示例中哪一个是创建 DTO 类的正确方法。 第一个例子
package com.example.matchescrud.dto;
import com.example.matchescrud.dto.response.MatchResponseDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class TeamDTO {
private Long id;
private String name;
private DivisionDTO division;
private CityDTO city;
private StadiumDTO stadium;
private List<MatchResponseDTO> homeMatches;
private List<MatchResponseDTO> awayMatches;
}
第二个例子
package com.example.matchescrud.dto;
import com.example.matchescrud.model.entity.City;
import com.example.matchescrud.model.entity.Division;
import com.example.matchescrud.model.entity.Match;
import com.example.matchescrud.model.entity.Stadium;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class TeamDTO {
private Long id;
private String name;
private Division division;
private City city;
private Stadium stadium;
private List<Match> homeMatches;
private List<Match> awayMatches;
}
对象属性应该是 DTO 的还是必须是普通对象?
据我所知,这两个示例之间的区别在于
List
的泛型类型:
List<MatchResponseDTO>
List<Match>
#1 是正确的。如果您的 DTO 中有非 DTO 数据,则它不是完整的 DTO。
我将用一个例子来详细说明:想象你有一个
Team
和 List<Player>
s。如果 Player
有密码等登录信息,您就不想公开它。