service.validate(order)和order.isValid()有什么区别

时间:2019-07-01 15:04:16

标签: java

我目前在生产中使用spring框架。 现在,我想先确认订单,然后再确认订单。

如果我按订单验证的代码是这样的

class Order() {
  Address address;
  List<Item> items;

  public boolean isValid() {
     if (address == null)
       return false;
     if (CollectionsUtils.isEmpty(items))
       return false;

     return true;
  }
}

class OrderService() {
  OrderRepository orderRepository;

  public confirmOrder(){
    Order order = orderRepository.findById(orderId);
    if(order.isValid())
      throw new InvalidOrderException();
    .
    . do something
    . 
  }
}

如果我这样写服务中的验证。

class Order() {
  Address address;
  List<Item> items;
}

class OrderService() {
  OrderRepository orderRepository;

  public confirmOrder(){
    Order order = orderRepository.findById(orderId);
    if(validate(order))
      throw new InvalidOrderException();
    .
    . do something
    . 
  }

  public boolean validate(Order order) {
     if (order.address == null)
       return false;
     if (CollectionsUtils.isEmpty(order.items))
       return false;

     return true;
  }
}

我想知道两种方式的利弊。

0 个答案:

没有答案