-
Notifications
You must be signed in to change notification settings - Fork 467
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
[2단계 - 블랙잭 베팅] 제프(변우영) 미션 제출합니다. #890
Open
horizonpioneer
wants to merge
40
commits into
woowacourse:horizonpioneer
Choose a base branch
from
horizonpioneer:step2
base: horizonpioneer
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
체크 리스트
test
를 실행했을 때, 모든 테스트가 정상적으로 통과했나요?https://prolog.techcourse.co.kr/studylogs/3989
객체지향 생활체조 요구사항을 얼마나 잘 충족했다고 생각하시나요?
1~5점 중에서 선택해주세요.
선택한 점수의 이유를 적어주세요.
객체를 작게 유지했는지에 대한 확신이 서지 않고, 디미터 법칙를 제대로 지키지 못했습니다.
어떤 부분에 집중하여 리뷰해야 할까요?
안녕하세요 매트!
step2를 진행하면서 궁금한 부분과 제 생각을 적어보았습니다.
이번엔 객체 지향적인 설계와 관련해서 리뷰해주시면 감사드리겠습니다!
1. step2에선 MVC 개념을 삭제했습니다.
스스로 도메인과 컨트롤러의 역할에 대해 잘 알지 못한채 MVC를 사용하는 것 같아 컨트롤러를 삭제하고 도메인이라는 개념을 해당 미션에서 삭제했습니다. 도메인은 핵심 비즈니스 모델, 컨트롤러는 도메인과 뷰를 연결해주는 창구라고 생각했었는데 담당 코치님과의 대화를 통해 잘못 알고 사용하고 있다는 생각이 들었습니다. 그래서 MVC를 나타내는 용어들을 삭제하고 패키지 및 코드를 재구성해보았는데, 큰 변화를 주었다는 생각이 들지 않습니다.
2. BlackJackGame에서 입출력을 인자로 받는 방식에 대해 피드백 받고 싶습니다.
BlackJackGame
을 통합 클래스로 두어 게임을 진행하도록 했고, 입력과 출력 부분은 블랙잭 게임의 일부라고 보고BlackJackGame
내부 메서드의 인자로 받는 방식을 사용해보기도 했습니다.하지만
BlackJackGame
이 게임을 관리하는 역할을 한다는 점에서, 입출력 객체를 인스턴스 변수로 두는 것이 더 명확한 책임 분리가 된다고 생각했습니다. 블랙잭 미션에서 게임 로직이 변경되더라도 입출력은 항상 필요한 요소이므로, 필드로 두는 것이 더 적절하다고 판단했는데 이에 대한 매트의 의견이 궁금합니다.3. 객체 지향적인 설계 관점에서 매트의 의견을 듣고 싶습니다.
BlackJack 미션의 공통 피드백을 적용하기 전에, 제가 직접 설계한 방식에 대해 먼저 피드백을 받고 싶습니다.
현재
BlackJackGame
의 play 메서드에서Players
와BetCenter
객체를 생성하는데, 이 과정에서 입력 로직이 필요하기 때문에 해당 로직을 play 내부에서 처리했습니다. 좀 더 객체지향적으로 접근한다면 "참가자 관리" 역할을 하는 별도 객체를 만들 수도 있을 것 같지만, 입력 로직이 여러 객체를 오가게 되면 유지보수가 어려워질 것 같아 지금의 구조를 유지했습니다.전체적인 객체 관계, 메시지 전달 방식, 그리고
BlackJackGame
과 같은 통합 클래스에서 메서드를 구현하는 방식에 대한 피드백을 받고 싶습니다.