우테코 3주차 로또 게임 피드백을 토대로 리팩터링을 진행했다.
GETTER 대신 메시지를 던져주게 바꿀 것
당첨로또는 로또 상속받고 보너스 번호 따로 저장
비즈니스 로직과 UI 로직 분리(toString)
Rank Enum 적용
당첨 수익금을 계산할 때도 Rank Enum을 적용해 불필요한 코드가 많이 삭제됐다.
Lotto Enum 도 getter 대신 isRangeIn 으로 메시지 던지기
느낀 점
- Enum 클래스 사용
Enum 클래스 및 일급컬렉션으로 새로운 자료구조를 만들어 사용하는 것은 불필요한 코드를 많이 삭제를 할 수 도있고 가독성부분에서도 많은 도움이 되는 것 같다. - getter 사용 지양
아직도 습관적으로 Alt+Insert로 getter를 만드는게 습관이 됐지만 이번 리팩터링을 계기로 getter로 가져가서 필요한 로직에 적용하기 보다 도메인 내에서 적용한 로직의 결과값을 메시지로 던지는게 처음 보는 사람이 코드 흐름을 따라기도 쉬울 것 같고, 객체의 상태값을 toString으로 뽑아주는 것도 마찬가지다. Lotto getter 하나 없앴다가 거의 모든 메인 로직을 갈아엎었지만 앞으로는 설계할 때부터 제대로 할 수 있을 것 같다.