Skip to content

안녕하세요 태우님! 1, 2단계 PR을 구경한 결과 아직 자바 문법이 익숙하지 않으신 것 같아, 자바 문법을 더 초점을 두고 리뷰를 드렸습니다. #163

@tae-wooo

Description

@tae-wooo

안녕하세요 태우님! 1, 2단계 PR을 구경한 결과 아직 자바 문법이 익숙하지 않으신 것 같아, 자바 문법을 더 초점을 두고 리뷰를 드렸습니다.

제가 MVC 패턴을 공부하면서 느낀 점은, Controller는 View에서 받은 정보를 Model에 전달하고, Model과 Model 간의 연결을 조율하며, 다시 Model에서 처리한 결과를 View에 전달하는 역할이라는 것입니다. 그래서 GameManage를 설계할 때, 경기 진행과 우승자 판별 로직을 Controller가 담당하도록 했습니다. 그런데 이렇게 하다 보니 Controller가 맡은 책임이 많아진다는 생각이 들었습니다.
그래서 궁금한 점은, 우승자 모델을 단순히 결과 저장용으로 두는 것보다, 우승자를 판별하는 로직까지 책임지도록 하는 것이 더 적절한지입니다.

이 질문을 떠올리면서 리뷰를 진행하다 궁금한 점이 생겼습니다.
태우님께서는 GameManage를 Controller 역할로 정의하고 프로그램을 만들어 주셨나요?
제가 리뷰하면서 본 태우님의 코드 구조는, GameManage보다 Main 메서드가 Controller 역할을 하고 있습니다.
GameManage는 View와 Model 사이를 연결하는 역할보다는 '자동차 경주'를 담당하는 큰 단위의 또다른 Model로 느껴졌는데요,
만약 이 구조를 유도하신 거라면 나쁘지 않은 구조입니다. '자동차 경주' 라는 큰 객체의 하위 객체로 '자동차', '우승자' 객체가 있다고 보면 되니까요.

하지만 GameManage를 Controller로 두신 거라면, 아래와 같은 작업은 확실히 Controller의 역할을 초과합니다.

  • 라운드 진행
  • 우승자 판별
    이 작업은 Controller보다 Model에 들어가는 것이 더 역할에 맞아 보입니다. 우승자 판별을 우승자 객체에서 하는 것이 맞아 보이시면, 그렇게도 해보세요! Controller에 있는 것보단 역할과 책임 측면에서 더 낫다고 생각합니다.

Originally posted by @BackFoxx in #162 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions