DTO实例、“组合优于继承“原则、单一职责原则

在歌曲类Song和歌单类SongList之间,增加一个ListSong类,作为中间表,关联歌曲和歌单
 

@TableName(value = "list_song")
@Data
public class ListSong implements Serializable {

    @TableId(type = IdType.AUTO)
    private Integer id;

    private Integer songId;

    private Integer songListId;

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}

在接收请求时新增一个请求处理类ListSongRequest

@Data
public class ListSongRequest {
    private Integer id;

    private Integer songId;

    private Integer songListId;
}

专门用于处理前端到后端的数据传输,而不直接使用实体类

这是一种常见的后端开发设计模式,将Domain实体类和Request请求类分开的原因是:

1. ListSong是数据库实体类(Domain),直接映射数据库表结构,包含了@TableName等数据库相关注解
2. ListSongRequest是接口请求对象(DTO),用于接收前端传来的数据,可以根据接口需求灵活定义字段
3. 这种分离可以避免实体类被污染,增强安全性,比如可以在Request类中过滤敏感字段
4. 便于接口版本管理和扩展,当接口参数变化时,只需修改Request类,不影响数据库实体类
5. 符合单一职责原则,实体类负责数据库映射,Request类负责接口参数传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值