기능 요구사항
- 로또 구입 금액을 입력하면 구입 금액에 해당하는 로또를 발급해야 한다.
- 로또 1장의 가격은 1000원이다.
프로그래밍 요구사항
- 배열 대신 컬렉션을 사용한다.
- 축약 금지
- 함수(또는 메서드)의 길이가 10라인을 넘어가지 않도록 구현한다.
- 함수(또는 메서드)가 한 가지 일만 하도록 최대한 작게 만들어라.
기존 프로그래밍 요구사항
- 자바 코드 컨벤션을 지키면서 프로그래밍한다.
- 기본적으로 Java Style Guide을 원칙으로 한다.
- indent(인덴트, 들여쓰기) depth를 2를 넘지 않도록 구현한다. 1까지만 허용한다
- 3항 연산자를 쓰지 않는다.
- else 예약어를 쓰지 않는다
- if문에서 값을 반환하는 방식으로 구현하면 else 예약어를 사용하지 않아도 된다.
새로운 프로그래밍 요구사항
Model LottoRate
- enum에서 데이터 꺼내오기
- 수익률 계산하기
- 수동 로또도 포함
LottoTicket
- 일급 컬렉션으로 로또 관리
LottoTicketDto
- outputView에서 상속을 위한 가상 일급컬렉션 생성
LottoTickets
- 무작위 숫자에서 생성된 로또 여러 가지 티켓 관리하는 일급 컬렉션
NumberGenerator
- 로또 생성하는 인터페이스 생성
RandomNumberGenerator
- 인터페이스를 오버라이딩해 로또를 만드는 메서드
Ranking
- 클린 코드를 위한 enum 사용
TicketCount
- 티켓 갯수를 받는 메서드 구현
WinningLotto
- 당첨 갯수 확인하는 메서드
- 보너스 볼 추가
View
InputView
-
구입 금액 입력받기
-
보너스 볼 입력 메서드 구현
-
수동 로또 구매 메서드 OutputView
-
출력하기
-
당첨 번호 출력
-
당첨 통계 출력
-
총 수익률 출력
Controller
- 작동