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

Team oppa yhj #4

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

124 changes: 124 additions & 0 deletions .idea/uiDesigner.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions src/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
public class Main {
public static void main(String[] args) {

}
}
59 changes: 59 additions & 0 deletions src/controller/VendingMachineController.java
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) {
Copy link

Choose a reason for hiding this comment

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

매직넘버 치환하면 더 알기 좋을 것 같아요!

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;
}
}
25 changes: 25 additions & 0 deletions src/domain/MenuOrder.java
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();
}
}
45 changes: 45 additions & 0 deletions src/domain/menu/HotMenu.java
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;
}


}
48 changes: 48 additions & 0 deletions src/domain/menu/IceMenu.java
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() {
//
// }
}
14 changes: 14 additions & 0 deletions src/domain/menu/Menu.java
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();

}
14 changes: 14 additions & 0 deletions src/domain/payment/Card.java
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;
}
}
Loading