[플레이그라운드] TDD, 클린 코드 (3) - 숫자야구게임 피드백 반영



전체 코드

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에 기능이 너무 많은 것 같은데, 클래스를 더 나누었어야 했던 것인지
    → 볼분류용 클래스를 따로 팠어야 했나

참고한 사이트


기능에 대한 상세한 설명은 나중에 작성하도록 하겠다.

다른 글