[TIL] DAY 29 & 30 & 31
데브 코스/TIL

[TIL] DAY 29 & 30 & 31

반응형

오늘 할 일

  • 알고리즘 풀기
  • 과제하기
  •  
  •  

TIL

Enum을 사용해 전략패턴 구현하기

이번 과제를 진행하면서 기능에 필요한 모든 구현을 한 클래스에 작성했었기 때문에 분리하기 위한 방법을 고민했다. 이 과정에서 if문을 없애기 위해 추천받은 방법이 Enum을 사용해 전략패턴을 구현하라는 것이다. 나는 Enum을 사용하는 이유가 되지 않았지만, 일단 도전했다.

내가 알고있던 이놈(Enum)의 개념은 "상수들을 열거해놓은 집합"이었다. 그래서 상수들만 선언해놓고 변수를 상수로 변경하는 것뿐인데 어떻게 분리를 하는 거지?라는 생각이 들었다. 

https://www.pngwing.com/ko/free-png-knsdn

 

위에서 Context부분을 Enum이라고 생각하고 Strategy 인터페이스를 중간에 두고 각각 행동에 따라 클래스를 구현해 전략을 구현하는 방식으로 진행했다. 

하지만 여기서 또 동일한 의문점이 발생했다. 이렇게 전략을 짜도 if문을 줄일 수 있나..? 다른분들의 코드를 참고하며 내린 결론은 Enum에서 상수뿐만 아니라 사용자가 입력한 값에 따라 각 행동이 동작할 수 있도록 Strategy를 호출하도록 했다. 신기하게도 이렇게 진행하니 훨씬 구현부가 깔끔해졌다. 물론 클래스와 인터페이스가 늘어나긴 했지만, 충분히 가독성 측면에서 많이 좋아졌다.

 

 

 

내일 할 일

  1. 실전 자바 SW 개발 스터디 준비
  2. 강의 듣기
  3. 알고리즘 풀기

 

 

느낀 점

객체지향 관점에서 코드를 작성한다는 것이 새롭고 어렵다.. Enum도 사실 처음 사용해봤는데 이러한 용도로 사용할 수 있다는 것이 신기하다. 아마 고쳐야 할 부분이 많을 텐데 추가로 더 공부를 해야겠다.

반응형

'데브 코스 > TIL' 카테고리의 다른 글

[TIL] DAY 33  (0) 2021.09.07
[TIL] DAY 32  (0) 2021.09.07
[TIL] DAY 27 & 28  (0) 2021.08.31
[TIL] DAY 26  (0) 2021.08.31
[TIL] DAY 25  (0) 2021.08.27