OrderDTO 为什么要重写一份, 不直接继承 OrderMaster

来源:6-3 买家订单-service创建_A

Erase_Liu

2017-09-12

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sybinal.sell.domain.enums.EnumUtil;
import com.sybinal.sell.domain.enums.OrderStatusEnum;
import com.sybinal.sell.domain.enums.PayStatusEnum;
import com.sybinal.sell.domain.model.OrderDetail;
import com.sybinal.sell.domain.model.OrderMaster;
import lombok.Data;

import java.util.List;

@Data
public class OrderDTO extends OrderMaster {

   List<OrderDetail> orderDetailList;

   @JsonIgnore
   public OrderStatusEnum getOrderStatusEnum() {
      return EnumUtil.getByCode(super.getOrderStatus(), OrderStatusEnum.class);
   }

   @JsonIgnore
   public PayStatusEnum getPayStatusEnum() {
      return EnumUtil.getByCode(super.getPayStatus(), PayStatusEnum.class);
   }

}


写回答

2回答

廖师兄

2017-09-13

用途不一样,就不要耦合在一起。我举个例子好了,假如有个UserDTO和UserMaster, UserDTO继承UserMaster, 某一天,UserMaster增加了个password字段, 这样UserDTO里也有这个字段了,但其实我是不想暴露password字段的。UserMaster和数据库保持一致, UserDTO用于传输。

5
1
Erase_Liu
非常感谢!
2017-09-18
共1条回复

Roce_

2017-09-13

单一职责

1
0

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程