[우아한테크코스] 2월 21일 TIL
less than 1 minute read
오늘 배운 것
- 로또 미션 리팩토링
로또 미션 피드백 반영
- 보다 명확한 클래스 이름 짓기
ticket, tickets와 같은 명명 보다 lottoTicket, lottoTickets와 같은 세세한 명명을 하도록 하자.
- 유효성 검증에서는 되도록 리턴 값을 주지 않도록 하자.
그렇다면 parseInt(value)는 어디서 해주는 것이 좋을까..
우선 parseInt 를 두 번 하는 식으로 구현했다
- LottoTicket의 멤버 변수가
List<Integer>
라서 매번 검증해줘야하는 부분
Integer가 아닌 Lotto라면 생성할 때 한번 검증해주고 그 후로는 검증할 필요가 없지 않은가?
List<LottoNubmer>
라는 구현을 하기 위해 LottoNumber라는 객체를 생성해주었다.
- util 처럼 사용되는 클래스에 대해서
private TicketValidation() {}
와 같은 구현을 하여 불필요한 인스턴스 생성을 방지하도록 하자.
- 생성자의 역할
멤버변수를 초기화해주는 역할
이라고 했다.
여기서 멤버변수의 초기화란 어디까지 생각하면 좋을까?
원하는 상태로 객체를 만들도록 초기화해야할지, 변수의 상태 자체를 초기화해야할지 모르겠다..
- controller의 무게가 너무 무거워보인다.
LottoGame이라는 객체를 생성해 관리하도록 하면 어떨까?
LottoGame을 생성하고 구현했지만, 가독성이 많이 떨어지고 구현하면서 굳이..? 라는 생각이 들었다…