[우아한테크코스] 2월 21일 TIL

less than 1 minute read

오늘 배운 것

  1. 로또 미션 리팩토링

로또 미션 피드백 반영

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