[플레이그라운드] TDD, 클린 코드 (3) - 숫자야구게임 피드백 반영
2023, Sep 20
전체 코드
https://github.com/Kyuyoung11/java-baseball-playground
기능 목록
1. 서로 중복되지않는 Balls 생성 - BallsCreator#makeRanodmBalls
2. 사용자 숫자 입력 받기 - InputView#getNumberInput
3. 정답과 비교 - ResultChecker#compareAnswer
3-1. 볼 비교 후 볼상태 가져옴 -ResultChecker#getEachBallStatus
3-1-1. 위치 O, 숫자포함 O -> 스트라이크 - Balls#isStrike
3-1-2. 위치 X, 숫자포함 O -> 볼 - Balls#isUniqueBall
3-1-3. 위치 X, 숫자포함 X -> 낫싱
3-2. 결과 출력 - ResultChecker#printResult
3-3. 정답인지 체크 - ResultChecker#isAnswer
4. 재시작 판단 Main#checkRestartGame
4-1. 사용자 입력 받기 - InputView#getGameEndNum
4-2. "1" -> 게임 재시작
4-3. "2" -> 종료
클래스 목록
패키지명 | 클래스명 | 목적 |
---|---|---|
dto | Ball | 위치값과 숫자를 가지는 객체 |
dto | Balls | list로 ball들을 묶어서 갖고있는 객체… Ball Status 분류도 해버림 |
services | BallsCreator | Balls 만들기 |
utils | InputView | 사용자 입력 관련 |
utils | ResultChecker | 결과 확인 |
utils | ValidationUtils | 검증 util |
enums | BallStatus | 볼 상태 enum |
enums | GameEndStatus | 게임종료 상태 enum |
[궁금한 점]
- Balls에 기능이 너무 많은 것 같은데, 클래스를 더 나누었어야 했던 것인지
→ 볼분류용 클래스를 따로 팠어야 했나
참고한 사이트
- 자바 스트림 중간 연산, 최종 연산 https://abcdefgh123123.tistory.com/423
기능에 대한 상세한 설명은 나중에 작성하도록 하겠다.