미션 Day4
1개월 전
미션 Day4
리팩토링하기
public boolean validateOrder(Order order) {
if (order.getItems().size() == 0) {
log.info("주문 항목이 없습니다.");
return false;
} else {
if (order.getTotalPrice() > 0) {
if (!order.hasCustomerInfo()) {
log.info("사용자 정보가 없습니다.");
return false;
} else {
return true;
}
} else if (!(order.getTotalPrice() > 0)) {
log.info("올바르지 않은 총 가격입니다.");
return false;
}
}
return true;
}
public boolean validateOrder(Order order) {
if (isEmptyOrder(order)) {
log.info("주문 항목이 없습니다.");
return false;
}
if (hasNoCustomerInfo(order)) {
log.info("사용자 정보가 없습니다.");
return false;
}
if (isInValidTotalPrice(order)) {
log.info("올바르지 않은 총 가격입니다.");
return false;
}
return true;
}
private boolean isInValidTotalPrice(Order order) {
return !(order.getTotalPrice() > 0);
}
private boolean hasNoCustomerInfo(Order order) {
return !order.hasCustomerInfo();
}
private boolean isEmptyOrder(Order order) {
return order.getItems().size() == 0;
}
SOLID에 대해 나의 언어로 정의하기
SRP : 하나의 클래스는 하나의 책임만을 가져야 한다.
OCP : 기능 추가에는 열려있고, 수정에는 닫혀있어야 한다.
LSP : 상속관계에서 자식클래스는 부모클래스의 기능을 대신할수있다.
ISP : 인터페이스는 필요한 기능만 가지게 만들어야한다.
DIP : 추상클래스에 의존하도록 만들어 교체가 쉽게 이루어질수있게 한다.
댓글을 작성해보세요.