🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

블로그

워밍업 클럽 4기 - 백엔드 Day 4

1. 코드 리팩토링As-Ispublic 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; } To-Bepublic boolean validateOrder(Order order) { if (doesNotHaveItems(order)) { log.info("주문 항목이 없습니다."); return false; } if (doesNotHaveTotalPrice(order)) { log.info("올바르지 않은 총 가격입니다."); return false; } if (doesNotHaveCustomerInfo(order)) { log.info("사용자 정보가 없습니다."); return false; } return true; } boolean doesNotHaveItems(Order order) { return (order.getItems().size() == 0)? true : false; } boolean doesNotHaveTotalPrice(Order order) { return !(order.getTotalPrice() > 0)? true : false; } boolean doesNotHaveCustomerInfo(Order order) { return !order.hasCustomerInfo()? true : false; } 2. SOLID에 대하여 자기만의 언어로 정리SRP : 클래스는 단일 책임을 가져야 한다 OCP : 새로운 기능 추가는 확장으로 처리한다 LSP : 자식 클래스로 부모 클래스를 대체 가능하다 ISP : 인터페이스도 가능한 작은 단위로 분리한다 DIP : 구체보다 추상에 의존하자 SOLID는 읽기 쉽고, 유지 보수가 쉽고, 기능 추가/변경을 쉽게 한다  

백엔드리팩토링SOLIDSRPOCPLSPISPDIP

채널톡 아이콘