Java(3)
-
조건이 복잡한 IF/ELSE-IF 문 리팩토링
개발을 처음 시작하면서부터 지금까지 써온 if 문은 과연 얼마나 될까. 사람의 생각 흐름과 가장 비슷하게 표현되는 문법이라서 그런지 무의식적으로도 많이 써온 것 같다. 하지만 구현해야 하는 로직이 복잡할수록, 다뤄야 하는 객체의 양이 많을수록 무한정 늘어나는 if/else-if 들은 점점 내 시야를 아득히 벗어나 제어할 수 없는 지경에 이르고야 만다. 앞선 enum 의 활용글에서도 언급한 바와 같이 경우에 따라서 enum 으로 if 문을 리팩토링이 가능하다. enum 으로 리팩토링이 가능한 경우는 if 문의 조건식이 특정 value 와 equal 인지를 판별하고 그 value 를 상수로 정의 가능할때 비로소 리팩토링을 할 수가 있었다. 하지만 언제나 그렇듯 코드는 우리가 원하는대로 그렇게 간단한 조건만을..
2023.01.06 -
enum 의 활용(2) - method 추가
이전 글에서 간단한 조건문을 enum으로 확장하는 방법에 대해서 알아보았다. 각 value 가 enum의 상수에 강력하게 묶여 있다면 enum에 종속적으로 만들어서 코드를 깔끔하게 정리할 수 있었다. 이번에는 enum 상수에 method들을 묶어 보자. 아래와 같은 코드가 있다고 가정해보고 enum으로 refactoring 을 해보자. // DayOfWeek 는 앞선 글에서 정의한 요일 상수를 가진 enum 이다. public void workSchedule(DayOfWeek dayOfWeek) { switch (dayOfWeek) { case MONDAY: case WEDNESDAY: case FRIDAY: this.workAtOffice(); break; case TUESDAY: case THURSD..
2022.09.22 -
enum 의 활용(1) - 상수에 value 추가
enum으로 할 수 있는 다양한 활용이 있는데 단순히 상수를 정의 하는 것만으로 끝내기에는 너무 아쉽다. 다양한 활용법 중에서 이 글에서는 가장 먼저 각 상수가 데이터-value를 가지도록 작성하는 방법과 이것이 활용적인 측면에서 가지는 이점에 대해서 알아보고자 한다. Value 의 추가 하나의 상수에 하나의 값을 연관지어보자. 예를 들면 "월요일 점심은 도시락, "화요일 점심은 고구마"... A이면 B의 가장 단순한 폼은 조건문(if-else / swith-case)일 것이다. 이를 코드로 보면 public String getLunchMenuByDayOfWeek(DayOfWeek dayOfWeek) { String menu; if (dayOfWeek == DayOfWeek.MONDAY) { menu =..
2022.09.19