워밍업 클럽 4기 BE 클린코드&테스트 Day 4 미션

1.

package cleancode.minesweeper.asis;

import java.util.List;
import java.util.Optional;

public class Order {

    private List<String> items;
    private int price;
    //private Customer customer;
    private Optional<Customer> customer = Optional.empty();

    public boolean validateOrder(Order order) {

        if(order.isOrderItemsListEmpty()) {
            return printErrorMessage("주문 항목이 없습니다.");
        }

        if(order.isTotalPriceBelowZero()) {
            return printErrorMessage("올바르지 않은 총 가격입니다.");
        }

        if(order.hasNotCustomerInfo()) {
            return printErrorMessage("사용자 정보가 없습니다.");
        }

        return true;
    }

    private boolean hasNotCustomerInfo() {
        //return customer == null;
        return customer.isEmpty();
    }

    private boolean isTotalPriceBelowZero() {
        return price < 0;
    }

    private boolean isOrderItemsListEmpty() {
        return items.isEmpty();
    }

    private boolean printErrorMessage(String message) {
        log.info(message);
        return false;
    }
}

 

2.

SOLID는 연인 관계와 비슷하다

SRP : 연인에게 모든 집안일을 맡겨서는 안된다 각자 맡은 일을 하나씩 하자

OCP : 연인의 이런 저런 요구사항이 생겨도 교제 초기 내 마음을 수정하지 말고 받아들이는 확장적인 자세를 갖자

LSP : 다른 연인을 만나도 연애하는 기본 방식은 같다

ISP : 연인에게 불필요한 부탁은 하지말고 꼭 필요한 부탁을 하자

DIP : 내가 좋아하는 건 연인의 외모나 마음이 될 수도 있지만 내가 좋아하는 건 연인 그 자체다

 

 

댓글을 작성해보세요.

채널톡 아이콘