Search
Duplicate
🚀

3단계 - 로또 (2등)

QnA

상수를 공통으로 분리해야할 조건은 무엇인가?
공통 클래스(Ex: Constant)를 사용하기보다는 사용하는 클래스 상수에 위치시키는 편이다.
주석을 지양하고 적절한 메서드 분리와 네이밍을 통해 코드만으로 의도를 설명하자는 관점에서 보면 이게 더 적절해 보인다.
여러군데서 공통으로 사용할 수 있는 값에 대해서만 분리를 하도록 한다.

feedback

1. 당첨 결과 역시 일급 컬렉션으로 분리하자.

당첨결과에 대한 내용을 Map<WinningType, Integer> 타입의 map에 저장했지만, 이 역시 일급 컬렉션으로 분리하게 되면 LottoTickets에서 당첨금액을 계산하는 책임을 분산할 수 있다.

2. UI단에서는 계산을 위한 판단 메소드 호출이 없게끔 하라.

UI는 받은 파라미터를 통해 결과를 그려야 할 책임만 있다.

3. 출력에 필요한 값 계산정도는 UI단에서 해도 된다.

예를들어 로또에서 사용금액이 10000원이고 당첨금액이 50000원이라고 할 때 수익율(ex: 500.0)을 출력하는데 있어서, 어떤 형태의 노출 값을 가공할지는 View마다 달라질 수 있다.
해당 예제에서는 소수점 2번째자릿수까지의 1을 기준으로 한 수익율 계산이지만 백분율을 바랄수도 있고, 소숫점을 없게 할수도 있기 때문에, 이런 최종 가공값은 UI단에서 해주는것도 괜찮다.

4. 가능하면 자료구조단에서 제공하는 기능사용을 권장한다.

예를들어 정렬이 필요하다면 List자료구조가 아닌 SortedSet을 사용하자 더 명시적이기에 가독성을 올려준다.

5.