Skip to content

Conversation

@MinChul-Son
Copy link

안녕하세요!

연료주입 및 블랙잭 1단계를 완료하여 제출합니다!!

최대한 엔티티를 작게 유지하려는 요구사항을 만족하기 위해 잘게 쪼개려 노력했는데 적절한지 잘 모르겠네요!

블랙잭이 생각보다 많이 어렵네요.. 😂

플레이어와 딜러를 Person이라는 추상 클래스로 표현해 공통 기능을 묶어내는 식으로 구현을 진행해봤어요!

그럼 이번 미션 잘 부탁드립니다!!

kworkbee and others added 30 commits February 11, 2022 16:16
기능 요구사항
- 각 보유 차량 (5대) 렌트할 때 대략적인 이동거리를 입력
  - 자동차 객체 생성 시 생성자에 이동거리 주입
    - 연료량 계산
- 연료 주입에 필요한 연료량 보고서 생성

프로그래밍 요구사항
- 상속 / 추상 메서드 활용
- 조건문 X

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- 주입 연료량 출력 보고서 정상 동작 여부 확인

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- 필요 기능 정의

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- Sonata
- K5
- Avante

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- 자동차 추가 (addCar)
- 주입 연료량 보고서 출력 (generateReport)

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
…utable

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- List<Card> 최종 점수 반환 메서드 작성

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- 각 카드 별 점수관련 클래스

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- 모든 카드(52개)를 생성시점에 초기화
- 덱에서 한장을 카드를 뽑음
- 덱이 비면 예외

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- 카드끼리의 비교를 위해 구현

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- 카드를 더 뽑을 수 있는지를 boolean으로 반환하는 canDrawCard()

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- 가지고있는 cards 객체에서 위임

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- 21보다 작다면 한장 더 뽑을 수 있음

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- Dealer
- Deck
- Players

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- Player

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- Card
- Cards
- Dealer
- Deck
- Person
- Player
- Score

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- Players

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
judy5050 and others added 19 commits February 17, 2022 21:51
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- MatchInfo
- ScoreInfo

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- InputView
- ResultView

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- 파산 여부
- 블랙잭 점수 (21점) 여부

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- activePlayer
- scoreInfo
- matchScore

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- 딜러 / 플레이어 점수 비교

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>"
- CardNumberTest
- DealerTest
- DeckTest
- PlayersTest
- PlayerTest
- ScoreBoardTest
- ScoreTest

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- Card
- CardNumber
- Cards
- Dealer
- Deck
- Person
- Player
- Players
- Score
- ScoreBoard

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- CardInfo
- MatchInfo
- NameInfo
- ScoreInfo

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
- InputView
- ResultView

Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Co-authored-by: judy5050 <qkrgywjd456@naver.com>
Co-authored-by: minchul-son <smc5236@gmail.com>
Co-authored-by: kworkbee <g1.tommy.jeon@gmail.com>
Copy link

@vsh123 vsh123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

민철님 안녕하세요!
우선 리뷰가 늦어져서 죄송합니다ㅠㅠ

몇가지 코멘트를 남겼으니 확인부탁드리겠습니다!

dealer = new Dealer();
dealer.initializeDeck(deck);

scoreMap = new LinkedHashMap<>() {{
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요기 컴파일 에러가 나는 것 같은데, 한번만 확인부탁드려도 될까요~?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 컴파일 에러가 발생하지 않는데 혹시 어떤 문제가 발생한지 알 수 있을까요?

스크린샷 2022-02-27 오후 5 38 04


@Override
public String getName() {
return this.getClass().getSimpleName();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

클래스명을 리턴하기보다는 별도 상수를 만들어서, 해당 상수값을 리턴하는게 어떨까 싶은데요! 이에 대해서 어떻게 생각하시나요~?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 메서드도 default method로 올려버리고 PassengerCar를 상속받는 곳에서 사용할 수 있도록 하는 것은 어떤가요??

이후에 K7이 추가된다면 K7이라는 클래스만 만들면 재사용할 수 있게끔이요!!

return cardNumber.isAce();
}

public String getCardName() {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 역할은 View의 역할인 것 같은데요! View에서 CARD_NAME_FORMAT에 맞게 만들어주면 어떨까요?

.orElseThrow(() -> new RuntimeException("존재하지 않는 키입니다."));
}

public static Score judge(final Cards playerCards, final Cards dealerCards) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 메서드가 10라인을 넘어가는 것 같아요!
아래의 요구사항을 지켜보면 어떨까요?

함수(또는 메서드)의 길이가 10라인을 넘어가지 않도록 구현한다.
함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아래 사진을 보게 되면 왼쪽은 ScoreTest에서 테스트가 수행된 커버리지를 보여주는데요! 참고
if문이 많은데 테이스 케이스가 부족해보여요! 다양한 테스트를 추가해보면 어떨까요~?

image

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.

4 participants