В чем разница между service.validate (order) и order.isValid () - PullRequest
0 голосов
/ 01 июля 2019

В настоящее время я использую пружинный каркас на своем производстве. Теперь я хочу подтвердить свой заказ, прежде чем подтвердить заказ.

Если я проверю при заказе код, будьте так.

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;
  }
}

Я хочу знать плюсы и минусы обоих способов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...