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

less than 1 minute read

오늘 배운 점 정리

  1. 로또 미션 피드백 반영
  2. 로또 미션 2단계 진행

로또 미션 피드백

  1. 타입 변환 위치 변경
    같은 행위인 Integer.parseInt("23")를 두번씩 실행하는게 어색하다는 생각이 들어 리뷰어님께 여쭤보니 메소드 명을 getNumber로 바꾸고 위치를 옮겨볼 것을 추천해주셔서 타입 변환이 필요한 LottoNumber와 Money에서 검증을 거쳐 타입 변환을 해주었다.
    이러고 나니, LottoNumber는 public 생성자가 두개가 발생해 정적 팩토리 메서드를 고민하게 되었다.
  2. 정적 팩토리 메서드
    이펙티브 자바 책에 의하면, 같은 시그니처를 갖는 생성자를 여러 개 정의할 필요가 있을 때는 그 생성자들을 정적 팩토리 메서드로 바꾸고 이름을 통해 명확한 차이를 갖도록 하자.
    장점
    • 생성자와 달리 이름을 가질 수 있다.
    • 호출할 때마다 새로운 객체를 생성할 필요가 없다. 예를 들어, 정적으로 이미 생성된 인스턴스가 있는 경우에 그것을 가져다가 쓰면 된다.
    • 반환값 자료형의 하위 자료형 객체를 반환할 수 있다. 자신을 상속하고 있는 하위 자료형의 객체도 유연하게 반환할 수 있다.
    • parameterized type 객체를 만들 때 편리하다.
      단점
    • 정적 팩토리 메서드만 있을 경우 생성자가 없으므로 상속이 불가능하다.
    • 다른 정적 메서드와 확연히 구분되지 않는다.
      우선 나는 여러 개의 생성자를 갖는 객체들인 LottoNumber, LottoCount 객체에 적용해보았다. 장점에 대해서 더 생각해봐야겠다.
  3. 구조 고민
    리뷰어님이 LottoGame 객체 생성에 대해서 고민해볼 것을 추천해주셨고, 구조에 대해서 고민을 하고 있다…… Game이 전체 흐름을 관리하려면…?,… 동시에 gameTest면에서도 고민이 된다…….ㅇㅅㅇ…..