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

[자판기] 장혁수 미션 제출합니다. #175

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

Conversation

zangsu
Copy link

@zangsu zangsu commented Nov 20, 2023

No description provided.

private Coins makeCoins(CoinGenerator generator) {
int coinMoney = getCoinMoney();
Coins coins = new Coins(generator.getCoins(coinMoney));
OutputView.printCoins(coins);

Choose a reason for hiding this comment

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

혁수님! OutputView를 static으로 불러올 수도 있고 객체를 만들어서 컨트롤러로 주입해줄 수 있는데 혹시 그중에 static을 사용하신 이유가 궁금해요
스터디때 최대한 static 사용을 지양하려고 고민 중이다! 라고 들었던 것 같아서 여쭤봅니당 👍

Copy link
Author

Choose a reason for hiding this comment

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

우선 static import를 하지 않은 이유는 스터디때 말씀 드린것과 마찬가지로 해당 메서드의 위치를 확실하게 명시하는 것이 저의 취향이기 때문이에요 ㅎㅎ

또, 의존성 주입을 사용하지 않은 것은 해당 부분에 대한 변경 가능성 없었기 때문입니다.
5시간이라는 짧은 시간동안 기능을 모두 완성하기 위해선 특정 부분에서는 트레이드 오프가 존재할 수 밖에 없다고 생각하는데 저에겐 이 부분이 트레이드 오프에 해당했어요.

만약 Randoms를 사용하는 클래스와 같이 테스트 과정에서 다른 클래스로 변경될 가능성이 있다면 의존성을 주입받았을 텐데요. 하지만 이번의 경우 출력을 하는 View를 변경할 일이 적어도 5시간 내에는 존재하지 않았기 때문에 의존성 주입을 사용하지 않았습니다.

마지막으로 OutputView의 메서드를 static으로 만든 것은 실제 웹 MVC에서도 View에 해당하는 html은 정적 파일이기에 그와 비슷하게 구현해 보자는 생각 때문이었습니다.
다만, 뭔가 이 부분이 원래 제가 사용하던 방법과 달라지다 보니 어색한 감이 있어 앞으론 OutputView도 하나의 객체로 생성하고 메서드를 호출할 것 같긴 해요!!

Choose a reason for hiding this comment

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

아 그러면 마지막에 말씀하신 내용은

  • 의존성 주입은 사용하지 않음
  • 메서드는 static으로 선언하지 않을 것

으로 Controller에서
InputView inputView = new InputView()와 같이
객체를 선언해서 사용하겠다는 말씀일까요?? 🤔

Copy link
Author

Choose a reason for hiding this comment

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

네, 지금은 그게 제일 저한테 익숙한 방법이라서요!

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