티스토리 뷰

Enum은 비슷한 상수들끼리 모아놓은 열거타입 클래스...

정도로만 알고 넘어갔다.

그런데 Enum을 활용해 코드의 가독성과 관리의 효율성을 높이는 것을 보고 (특히 조건문)

큰 흥미가 생겨 부랴부랴 찾아봤다.


특히 배달의 민족 기술블로그에 있는 Enum 활용기를 보고

'와 이렇게도 활용할 수 있구나' 하며 놀랐다.

마치 게임에 대한 이해가 높아서 기본 유닛의 특징을 활용해 새로운 전략으로 농락하는 모습을 본 듯한 느낌(?)


참조 사이트를 보며 직접 if문을 구현해 본 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class main {
    public static void main(String[] args) {
 
        String data = "Banana";
 
        Fruit fruit = Fruit.valueOf(data);
 
        System.out.println("color : " + fruit.value_1 + " / num : " + fruit.value_2);
    }
 
    private enum Fruit{
        Apple("red"1),
        Mango("yello"2),
        Banana("green"3);
 
        private String value_1;
        private int value_2;
 
        Fruit(String value_1, int value_2){
            this.value_1 = value_1;
            this.value_2 = value_2;
        }
    }
}
cs

이 때의 가장 큰 장점은 코드의 관리가 쉬워지며, 가독성이 높아진다.

코드가 복잡해지고 길어지면 관리할 때 어려움이 생기게 된다. 못 찾으면 중복코드도 발생하게 되고 비효율적인 것은 자명하다.


Enum에 대한 설명은 나중에 기회가 되면 자세히 공부하며 정리해야겠다.

생활코딩에 enum에 대한 친절한 강의가 올라와 있으며,

이펙티브 자바의 Enum 파트를 정리해 놓은 사이트도 있으니 함께 보면 도움이 되겠다.

(이펙티브 자바는 지금 읽고 있는 책들이 끝나면 한번 봐야겠다. 좋은 내용이 많은 느낌)



Reference

http://itmore.tistory.com/entry/%EC%9E%90%EB%B0%94-enum%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-if%EB%AC%B8-%EC%A4%84%EC%9D%B4%EA%B8%B0


http://pigbrain.github.io/java/2016/03/23/if_enum_on_Java


http://inor.tistory.com/12

댓글