6. 조건분기 - 미궁처럼 복잡한 분기 처리를 무너뜨리는 방법
내용
조건 분기가 중첩되어 낮아지는 가독성
early return 으로 조건 분기 중첩을 제거하자
elseif
를 early return으로 개선할 수 있는지 확인해보자
switch 조건문 중복
마법 사용 포인트.. 케이스가 추가될 때 마다 case.... 코드가 추가된다.
별로 좋지 못한 코드
새로운 케이스가 추가될 때마다 비즈니스 로직이 누락되는 경우가 발생할 수 있음.
개선방법 - 단일책임원칙
단일책임 원칙에 따라서 Magic과 관련된 모든 것을 관리하는 클래스를 만든다.
마법 이름, 매직포인트 소비량, 공격력, 테크니컬포인트 소비량..을 관리하는 하나의 클래스
이렇게 한곳에서 관리할 경우, 누락 실수를 줄일 수 있음.
인터페이스를 이용한다.
클래스가 거대해지면 관심사에 따라 작은 클래스로 분할하는 것이 중요.
인터페이스?
기능 변경을 편리하게 할 수 있는 개념
개선방법 - 인터페이스 이용 (전략 패턴)
인터페이스 구현체
Map으로 이용하도록 변경하기
자료형 확인에 조건 분기 사용하지 않기
instanceof
자료형을 판정하는 연산자리스코프 치환 원칙 을 위반
클래스의 기반 자료형과 하위 자료형 사이에 성립하는 규칙
기반 자료형을 하위 자료형으로 변경해도 코드는 문제 없이 동작해야한다.
기반 자료형?
인터페이스
하위 자료형?
인터페이스를 구현한 클래스
플러그 매개변수
damage(true, damageAmount)
true
-> 플러그 매개변수어떤 내부적으로 어떤일을 하는지 예측하기 힘듬
메서드는 하나의 기능만 하도록 설계하는 것이 좋음
정리
중첩 if 문 사용하지 말라 -> 가독성 떨군다.
switch 문 대신, 인터페이스를 활용한 전략패턴을 고려하라 -> 누락 실수를 방지할 수 있다.
조건 분기를 사용하는 상황이 오면 일단 인터페이스 설계를 떠올리자
참고
https://product.kyobobook.co.kr/detail/S000202521361
Last updated
Was this helpful?