2022년 정리6

조용휘·2023년 1월 22일
0

2022

목록 보기
6/10

기능 구현 목록
Model : 데이터 관리
ConstantDataStorage
1~45까지의 수를 포함하는 데이터 저장
당첨 번호의 개수 6 저장
보너스 번호의 개수 1 저장
LottoTicketsStorage
발행된 로또티켓들을 저장
WinNumbersStorage
당첨 번호 저장
BonusNumberStorage
보너스 번호 저장
NumberOfCorrespondedNumberStorage
일치한 번호의 개수 저장
View : Printout, input 관리
MoneyReceiver
금액 입력받음
WinNumberReceiver
당첨번호 입력받음
BonusNumberReceiver
보너스번호 입력받음
ConstantMents
각종 진행중 출력 양식을 상수화한 클래스 구현.
IssuedLottoPrinter
발행한 로또들을 출력.
ResultPrinter
WinResultManager로부터 받은 값을 출력.
Controller : 알고리즘 관리
논리 구현
Casher
1000원 단위로 떨어지는 티켓수 발행.
남은 금액은 예외처리 후 반환.(예외처리후 프로그램을 종료해야 하는지 알아보자.)
TicketMachine
구입한 금액만큼의 티켓을 랜덤넘버로 발행
WinResultManager
일치하는 번호의 갯수 enum으로 반환
EarningRateCalculator
수익률 계산.
예외 처리 (To User : IllegalArgumentException / To pgrogrammer :

)
예외 상황시 반드시 앞에 [ERROR] 출력(로그 활용)후 에러 문구 같이 출력.
validateLottoNumberRange
로또 번호의 숫자 범위 1~45 체크
[ERROR] 로또 번호는 1부터 45 사이의 숫자여야 합니다.
validateDuplicatedNumber
숫자 중복 여부 체크(로또 발행시, 당첨 번호 입력시, 보너스 번호 입력시)
[ERROR] 로또 번호는 중복되지 않아야 합니다.
validateNumberSize
숫자 자릿수 체크(6 or 1(보너스))
Case ‘6’ : [ERROR] 로또 번호는 총 6개여야 합니다.
Case ‘1’ : [ERROR] 보너스 번호는 1개여야 합니다.
validateWinnerNumber
당첨자가 5명인지 체크
[ERROR]

당첨자는 총 5명이어야 합니다.
validateIssuedTicketNumber
티켓이 구입한 금액의 1000원 단위에 맞게 나왔는지 체크
[ERROR]

티켓의 갯수가 구입하고자 하는 수량과 다릅니다.
validateMoneyUnit_1000
1000원으로 나눠떨어지는지 확인후 잔돈이 생기는지 체크
[ERROR]

받은 금액에 잔돈이 발생했습니다.
validateUserInputIsMoney
유저가 입력한 값이 숫자인지 확인
[ERRPR] 입력값이 올바르지 않습니다. 숫자를 넣어주세요.
사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시키고, 에러 메시지는 예외 발생시 로그를 남기는 방식으로 나타낸다. 메시지 출력후 프로그램은 종료된다.

profile
Progress Gradually, Never Stop

0개의 댓글