기능 구현 목록
1차 기능 구현 목록
- 시작문구 출력
- “숫자 야구 게임을 시작합니다.”
- 랜덤 3자리 픽
- 데이터 베이스 클래스 구현
- 필드
- 정답 List
- 사용자의 인풋 List
- Strike 갯수
- ball 갯수
- 낫싱
- 랜덤 3자리 생성하여 데이터베이스 클래스에 저장.
- GameManager 클래스 생성하여 게임의 처음과 끝 담당.
- 정답을 Collection API로 받음
- 입력을 Collection API로 받음
- Strike 비교
- Ball 비교
- 낫싱은 S, B가 없을 때
- 정답이 아닐 경우의 결과 출력
- 정답일 경우 결과 출력, 1or2 입력 받음
- 예외 처리
1차 최종 결과

뭔가 어수선하다. 기능을 분야별로 모으거나 세분화 해보자.
메인에서 만들어지는 객체가 GameManager, Database, Output, CompareNumbers 타입이다.
- SRP 체크
-
GameManager
기능 자체가 너무 큰 것 같다. 세분화 해보자.
-
Output
-
CompareNumbers
-
Database
- 뭔가 다른 클래스들에 비해 그나마 잘 정리된 클래스같다.
- setter와 getter가 많아 클래스가 비대해 보이는데 괜찮은건가?
IsAgain에서 userInput 더 좋게 리펙토링 가능?
Exception은 exception끼리
UserInput 입력값이므로 입력은 입력끼리
게임 운영중 나오는 isFinish나 isAgain끼리
GameManager를 게임의 전체적인 진행만 관리하는 클래스로