Đôi khi trong code có quá nhiều if-else sẽ không thực sự tốt và gây rối cho người đọc. Có một số cách cơ bản mình tìm hiểu được sẽ loại bỏ if-else không cần thiết. Tất nhiên là tùy trường hợp không phải hoàn toàn nhé.
PHƯƠNG PHÁP 1: EARLY RETURN
Nếu bạn dịch tên phương pháp này ra tiếng Việt, thì bạn sẽ nhận được ý nghĩa là “Trả về sớm” thì bạn cũng có thể hiểu rằng phương pháp này sẽ làm gì đúng không.
ví dụ:

public boolean isValid(String condition) {
  boolean result;
  if (condition != null){
      if (condition.equals("hello") {
        result = true;
      } else {
         result = false;
      }
  } else {
    result= false;
  }
  return result;
}

Hàm isValid ở trên chạy rất bình thường nhưng thực tế rất rối phải không? Cùng xử lý nó nhé:

public boolean isValid(String condition) {
  if (condition == null) {
    return false;
  }

  if (condition.equals("hello") {
    return true
  }

  return false;
}

Bạn thấy sao?
PHƯƠNG PHÁP 2: SỬ DỤNG ENUMERATION

public String getLabel(int status) {
    String label;
    if (1 == status) {
        label = "Pending";
    } else if (2 == status) {
        label = "Paid";
    } else if (3 == status) {
        label = "Success";
    } else if (4 == status) {
        label = "Failed";
    }
    return label;
}

Tất nhiên, nếu bạn là một “pro” thì chẳng viết như thế này. Nhưng thực tế, nó rất phổ biến.
Trước tiên chúng ta sẽ định nghĩa ra 1 enum, hãy đặt tên nó là StatusLabelEnum.

@Getter
@AllArgsConstructor
public enum StatusLabelEnum {
    Padding(1, "Pending"),
    Paid(2, "Paid"),
    Success(3, "Success"),
    Failed(4, "Failed"),
    ;

    private int status;
    private String label;

    public static String getLabelByStatus(int status) {
        for (StatusLabelEnum labelEnum : StatusLabelEnum.values()) {
            if (labelEnum.getStatus() == status) {
                return labelEnum.getLabel();
            }
        }
        return "Unknown";
    }
}

chúng ta có thể dễ dàng lấy status bằng cách.

public String getLabel(int status) {
  return StatusLabelEnum.getLabelByStatus(status);
}

PHƯƠNG PHÁP THỨ 3: SỬ DỤNG OPTIONAL

public int getOrderStatus(UUID id) {
  Order order = getOrderById(id);
  if (order == null) {
      return 1;
  } else {
      return order.getOrderStatus();
  }
}

Nhìn cũng chấp nhận được nhưng để gọn hơn thì:

public int getOrderStatus(UUID id) {
  Order order = getOrderById(id);
  return Optional.ofNullable(order).map(Order::getOrderStatus).orElse(1);
}

Trên đây một số cách giúp tối ưu loại bỏ bớt if-else khi code mà các bạn có thể xem xét nhé.

Tham khảo khoá Java fullstack từ cơ bản cho người mới bắt đầu - Tại đây