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

프리코스 스터디 1주차 - 고루 #182

Open
wants to merge 28 commits into
base: main
Choose a base branch
from

Conversation

oyoungsun
Copy link

No description provided.

- 자판기 보유 금액 설정
- 상품 설정
- 투입 금액 설정

private VendingMachineController(final Input input) {
this.input = input;
}

Choose a reason for hiding this comment

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

필드로 선언한 객체들 중에 의존성을 주입받는 객체가 있고 아닌 객체가 있네요!
의존성 주입 여부를 어떤 기준으로 나누셨는지 궁금합니다! 🧐

printExceptionMessage(e);
return null;
}
}

Choose a reason for hiding this comment

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

우왓 Function 함수형 인터페이스를 이용해서 입력받은 값을 필요한 도메인으로 바로 바꾸는 것을 이렇게 깔끔하게 적용할 수 있군요..!!
배워갑니다 👍

if (depth >= MAX_RECUR_DEPTH) {
throw new IllegalArgumentException(
String.format("[ERROR] 입력 재시도 최대 가능한 %d회를 초과하였습니다.", MAX_RECUR_DEPTH));
}

Choose a reason for hiding this comment

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

오..! Controller단에서 재귀를 사용하셔서 재시도에 대한 우려가 있었는데, 입력 재시도 가능 횟수를 설정하셨군요!
이런 방법이라면 메모리 부족에 대한 걱정은 덜어둘 수 있겠어요! 👍

setHoldCoin();
setProducts();
setInputAmount();
//TODO : while(isStilRemainMoney)

Choose a reason for hiding this comment

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

혹시 이 TODO는 어떤 기능을 완성하고 싶으셨던건지 궁금합니다! ☺️

Choose a reason for hiding this comment

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

상품 가격까지 꼼꼼하게 감싼 점!! 배워갑니다! 👍


public void purchase(final String inputString) {

}

Choose a reason for hiding this comment

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

앗 이 부분은 구현을 미저 못하신..!! 부분인가봐요 ㅠ.ㅠ
다음에는 다 부셔버리자구요! 💪

}
}
return coins;
}

Choose a reason for hiding this comment

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

자판기의 보유 동전 개수를 랜덤으로 정하는 로직인 것 같네요!
int형 배열 두 개로 설정하니까 아무래도 가독성 부분에서 아쉬운 것 같습니다 (아무래도 시간 부족 때문이겠죠 ㅠ.ㅠ)

고루님께서 작성하신 코드와 비슷한 기능을 하면서 가독성을 어떻게 높일 수 있을까 고민하다가,
countCoin()에서 사용하신 map을 활용할 수 있겠다는 생각이 들었습니다!

coins[random][0]++이 부분을
map.put({random에 해당하는 Coin 객체}, map.getOrDefault({Coin 객체}, 0) + 1); 와 같이 구현해볼 수 있을 것 같습니다!
고루님의 생각은 어떠신지 궁금해요 ☺️

int count = covertToInt(productInformation[2]);

return new AbstractMap.SimpleEntry<>(Product.of(name, price), count);
}

Choose a reason for hiding this comment

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

우왓... AbstractMap이라는게 있었군요...! 처음 알았네요!
작성하신 코드보면서 공부 해봐야겠어요!

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.

2 participants