-
Notifications
You must be signed in to change notification settings - Fork 9
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
Team oppa yhj #4
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
public class Main { | ||
public static void main(String[] args) { | ||
|
||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package controller; | ||
|
||
import domain.MenuOrder; | ||
import domain.menu.HotMenu; | ||
import domain.menu.IceMenu; | ||
import ui.InputView; | ||
import ui.OutputView; | ||
|
||
public class VendingMachineController { | ||
|
||
private final OutputView outputView; | ||
private final InputView inputView; | ||
|
||
public VendingMachineController(OutputView outputView, InputView inputView) { | ||
this.outputView = outputView; | ||
this.inputView = inputView; | ||
} | ||
|
||
public void getBeverage() { | ||
MenuOrder menuOrder = getMenuOrder(); | ||
|
||
} | ||
|
||
private MenuOrder getMenuOrder() { | ||
int menuType; | ||
try { | ||
menuType = Integer.parseInt(inputView.getMenuType()); | ||
if (menuType > 2 || menuType < 1) { | ||
throw new IllegalArgumentException("메뉴는 1, 2 번중에 골라야 합니다.") | ||
} | ||
} catch (NumberFormatException e) { | ||
outputView.printError("잘못된 메뉴 종류입니다."); | ||
return getMenuOrder(); | ||
} catch (IllegalArgumentException e) { | ||
outputView.printError(e.getMessage()); | ||
return getMenuOrder(); | ||
} | ||
return getMenu(menuType); | ||
} | ||
|
||
private MenuOrder getMenu(int menuType) { | ||
int orderNumber; | ||
MenuOrder menuOrder = null; | ||
try { | ||
if (menuType == 1) { | ||
orderNumber = Integer.parseInt(inputView.getIceMenuNumber()); | ||
menuOrder = new MenuOrder(IceMenu.getMenu(orderNumber)); | ||
} | ||
if (menuType == 2) { | ||
orderNumber = Integer.parseInt(inputView.getHotMenuNumber()); | ||
menuOrder = new MenuOrder(HotMenu.getMenu(orderNumber)); | ||
} | ||
} catch (IllegalArgumentException e) { | ||
outputView.printError(e.getMessage()); | ||
return getMenu(menuType); | ||
} | ||
return menuOrder; | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package domain; | ||
|
||
import domain.menu.HotMenu; | ||
import domain.menu.IceMenu; | ||
import domain.menu.Menu; | ||
|
||
public class MenuOrder { | ||
private Menu menu; | ||
|
||
public MenuOrder(Menu menu) { | ||
this.menu = menu; | ||
} | ||
|
||
private void validateOrder(Menu menu) { | ||
if (menu == HotMenu.NONE || menu == IceMenu.NONE ) { | ||
throw new IllegalArgumentException("잘못된 주문입니다.\n"); | ||
} | ||
} | ||
|
||
private | ||
|
||
public int getPrice() { | ||
return menu.getPrice(); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package domain.menu; | ||
|
||
import java.util.Arrays; | ||
|
||
public enum HotMenu implements Menu { | ||
TOP(1, "TOP커피", 1_800), | ||
HONEY_WATER(2, "꿀물", 1_500), | ||
HONGSAM(3, "홍삼차", 1_700), | ||
DANPAT(4, "단팥죽", 2_100), | ||
NONE(-1, "없음", 0); | ||
|
||
private int number; | ||
private String name; | ||
private int price; | ||
|
||
HotMenu(int number, String name, int price) { | ||
this.number = number; | ||
this.name = name; | ||
this.price = price; | ||
} | ||
|
||
public static Menu getMenu(int number) { | ||
return Arrays.stream(HotMenu.values()) | ||
.filter(hotMenu -> hotMenu.number == number) | ||
.findFirst() | ||
.orElse(NONE); | ||
} | ||
|
||
@Override | ||
public int getNumber() { | ||
return this.number; | ||
} | ||
|
||
@Override | ||
public int getPrice() { | ||
return this.price; | ||
} | ||
|
||
@Override | ||
public String getName() { | ||
return this.name; | ||
} | ||
|
||
|
||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package domain.menu; | ||
|
||
import java.util.Arrays; | ||
|
||
public enum IceMenu implements Menu { | ||
SPRITE(1, "스프라이트", 1_500), | ||
COKA(2, "코카콜라", 1_300), | ||
SOLE(3, "솔의눈", 1_000), | ||
PEPSI(4, "펩시 콜라", 1_100), | ||
NONE(-1, "없음", 0); | ||
private int number; | ||
private String name; | ||
private int price; | ||
|
||
IceMenu(int number, String name, int price) { | ||
this.number = number; | ||
this.name = name; | ||
this.price = price; | ||
} | ||
|
||
public static Menu getMenu(int number) { | ||
return Arrays.stream(IceMenu.values()) | ||
.filter(iceMenu -> iceMenu.number == number) | ||
.findFirst() | ||
.orElse(NONE); | ||
} | ||
|
||
@Override | ||
public int getNumber() { | ||
return this.number; | ||
} | ||
|
||
@Override | ||
public int getPrice() { | ||
return this.price; | ||
} | ||
|
||
@Override | ||
public String getName() { | ||
return this.name; | ||
} | ||
|
||
// | ||
// @Override | ||
// public String toString() { | ||
// | ||
// } | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package domain.menu; | ||
|
||
public interface Menu { | ||
String INTRODUCTION_MESSAGE = "------------------------------\n" + | ||
"음료를 선택 해주세요!\n" + | ||
"\n" + | ||
"[1] 차가운 음료\n" + | ||
"[2] 따뜻한 음료\n"; | ||
|
||
int getNumber(); | ||
int getPrice(); | ||
String getName(); | ||
|
||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package domain.payment; | ||
|
||
import domain.menu.Menu; | ||
|
||
public class Card extends Payment { | ||
public Card(Menu menu) { | ||
super(menu); | ||
} | ||
|
||
@Override | ||
public int getChangeAmount() { | ||
return 0; | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
매직넘버 치환하면 더 알기 좋을 것 같아요!