Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[자동차 경주] 홍석우 자동차 미션 제출합니다. #68

Open
wants to merge 18 commits into
base: stonecau
Choose a base branch
from

Conversation

StoneCAU
Copy link

@StoneCAU StoneCAU commented Oct 12, 2024

저번 1,2 단계에 이어서 리팩토링 과정까지 완료하였습니다.

리뷰해주신 내용과 수업 시간에 배운 내용을 기반으로 코드를 수정한 뒤에 3,4 단계를 진행하였습니다.

[리뷰 반영]

  • Random 함수 대신 NumberGenerator 활용
  • 좀 더 정확한 테스트를 할 수 있도록 List 요소 별로 검사하는 테스트 추가

[수정 사항]

  • Race 객체에서 winner를 구하는 로직 수정
    • 단순 for문에서 stream을 이용하도록 바꾸어보았습니다

[구현 사항]

  • controller/domain/view로 구분
  • domain
    • CarParser: input 값을 받았을 때, validation 후 List로 반환하는 역할
  • Controller: 메세지 입/출력과 Race 객체 생성
  • view
    • InputView: Cars 입력과 tryCount 입력 메서드
    • OutputView: 메세지를 출력하는 메서드
    • OutputMessage: 실제 출력할 메세지들을 enum 형식으로 구현
  • 예외 처리 테스트 클래스를 생성하였음

[의문 사항]

  • Race 객체 생성 시 List의 size와 tryCount를 검증하는 코드가 있는데, 이를 CarParsing 클래스에 옮겨서 처리하는 것이 더 깔끔할까요?
  • domain에서 출력 기능을 써도 되는건지?
    • Race의 start 메서드에서 move를 실행 후 매 번 round를 생성하고 출력하기 위해 출력 메서드를 사용
    • Race의 start 메서드에서 winners를 찾은 후 실행 결과를 출력하기 위해 출력 메서드를 사용
  • Controller에서 Race 객체를 생성해도 되는지?
    • Race의 createRace 메서드로 간접적으로 생성하고있음
  • InputView와 OutputView의 메서드 같은 경우, public static으로 사용해도 되는지?
    • 리팩터링 힌트부분(next step)에서는 public static으로 사용한 것을 보았음
    • 또는, Controller에서 private로 InputView와 OutputView를 선언하여 사용하는 것이 좋은건지?

이 외에 의문사항이 생긴다면 수업 전까지 생각하여 오겠습니다. 감사합니다 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant