-
Notifications
You must be signed in to change notification settings - Fork 35
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
[보스 몬스터 잡기] 전영은 미션 제출합니다. #21
Open
Junyewdd
wants to merge
23
commits into
baton-mission:Junyewdd
Choose a base branch
from
Junyewdd:Junyewdd
base: Junyewdd
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.
코드 설명
1. 구조
MVC 패턴에 맞게 코드를 짜려고 노력했습니다.
Domain에는 Player, BossMonster, Game을 넣었고
각 클래스 필드를 수정해야하는 경우, Controller에서 작업했습니다.
입력과 출력 관련한 내용은 view 파일에서 작업했습니다.
2. final
player와 boss monster에 있는 모든 필드 변수에 final을 붙여 불변하도록 만들었습니다. 추가적으로 setter를 사용하지 않았습니다. HP와 MP를 바꿔야 할 때는 새로운 객체를 만들어 반환했습니다.
3. 예외 상황
입력값 예외처리는 throw를 이용하고, while문을 이용하여 올바르게 입력될 때까지 작업을 반복하도록 했습니다.
질문 및 고민 사항
1. 구조
MVC 패턴에 맞게 코드를 짜려고 했지만 많이 부족하다고 생각합니다. 어떠한 부분을 고쳐야 할 지 궁금합니다.
2. final
이번 과제에서는 setter를 쓰지 않으려고 domain 변수에 final을 붙였습니다. 그래서 값이 변경될 때마다 새로운 객체가 생성되도록 했는데, 이렇게 만드는 게 맞는지 잘 모르겠습니다. 이번 과제처럼 hp와 mp가 계속 변해야 하는 상황에서는 setter를 쓰는 게 나은지 궁금합니다!
3. 예외 처리
예외 처리를 위에 적은 것처럼 구현했습니다. 더 좋은 처리 방법이 있을까요?
4. 테스트
기초적인 작업에 대해서만 테스트를 만든 느낌입니다. 피드백 부탁드립니다!