워밍업 클럽 4기 백엔드 DAY-4 미션

1. 코드 리팩토링

// 리팩토링 메서드

    public boolean validateOrder(Order order) {

        // 1. 주문 검사
        if (order.isEmpty()) {
            log.info("주문 항목이 없습니다.");
            return false;
        }

        // 2. 사용자 검사
        if (!order.hasCustomerInfo()) {
            log.info("사용자 정보가 없습니다.");
            return false;
        }

        // 3. 가격 검사
        if(!order.hasValidTotalPrice()){
            log.info("올바르지 않은 총 가격입니다.");
            return false;
        }

        return true;
    }

/  ------------------------- /

public class Order {

    // Order 객체에 추가되는 메서드들
    public boolean isEmpty() {
        return items.size() == 0;
    }

    public boolean hasValidTotalPrice() {
        return totalPrice > 0;
    }

}

 

2. SOLID

- SRP : 각 객체는 하나의 책임(역할)만 가져야 한다.

- OCP : 기존 코드를 변경하지 않고도 코드를 추가(기능 추가)할 수 있어야 한다.

- LSP : 부모 객체를 자식 객체로 변경할 수 있어야 한다.

- ISP : 인터페이스는 최소한으로 작게 분리되어야 한다.

- DIP : 추상화 레벨이 높은 고수준 모듈(구현)은 저수준 모듈에 의존하지 않고, 추상(인터페이스)에 의존해야 한다.

댓글을 작성해보세요.

채널톡 아이콘