5-1.switch 문 Switch Statements
[ 2017-08.01 작성 ]
- switch 문의 단점은 반드시 중복이 생긴다는 점이다. 동일한 switch가 다른 곳에서 또 쓰일가능성이 크다
- switch 문에 새 코드행을 추가하려면 그렇게 여기저기에 존재하는 switch 문을 전부 찾아서 수정해야한다.
- 이 문제를 해결할수 있는 방법은 다형성 즉 재정의를 이용하는 것이다.
- switch 문을 메서드 추출로 빼낸 후 메서드 이동을 실시해서 그 메서드를 재정의해야 할 클래스에 옮겨 넣으면 된다.
- 단, 간단한 스위치는 그냥 사용하는 것이 더 낫다.
다형성
팩토리패턴
해시테이블 OR 딕셔너리
HashTable
Dictionary
Wrapping up
두 경우 모두 코드 양이 반드시 감소하지는 않습니다. 리팩토링의 요점은 코드의 양을 줄이는 것이 아니라 현재 코드의 디자인을 개선하는 것입니다.
어떤 방법을 선택하든 함께 작업하는 코드에 따라 달라집니다. 몇 가지 일반적인 사용 사례는 다음과 같습니다.
- switch별도의 클래스 / 객체 / 파일 / 범위에서 중복 된 문 을 제거하려는 경우 다형성을 사용해보십시오
- 성능을 향상시키려는 경우 해시 테이블을 사용하십시오.
- 읽기 가능성 만 향상시키려는 경우 해시 테이블을 사용하십시오.
- 귀하의 switch진술이 너무나 거대하고 한 곳에서만 사용되는 경우 해시 테이블을 사용하십시오 (또는 왜 그렇게 큰지 파악하고 수정하십시오)
위 참고 사이트 : http://tmont.com/blargh/2011/11/refactoring-a-switch-statement