Skip to content

Commit

Permalink
添加了咖啡种类选择逻辑和投币管理以及杯子类型的选择模块
Browse files Browse the repository at this point in the history
  • Loading branch information
maowei117 committed Jan 6, 2016
1 parent 6cecd2a commit d9e2b87
Show file tree
Hide file tree
Showing 14 changed files with 159 additions and 0 deletions.
Binary file added bin/model/Box.class
Binary file not shown.
Binary file added bin/model/Coffee.class
Binary file not shown.
Binary file added bin/model/CoffeeKind.class
Binary file not shown.
Binary file added bin/model/Coin.class
Binary file not shown.
Binary file added bin/model/CoinNumberLabel.class
Binary file not shown.
Binary file added bin/model/CoinObserver.class
Binary file not shown.
Binary file added bin/model/Cup.class
Binary file not shown.
45 changes: 45 additions & 0 deletions src/model/Box.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package model;

public class Box {
private Water water;
private Sugar sugar;
private Cup cup;
private Milktea milktea;
private Coffee coffee;

public Box(){
water = new Water();
sugar = new Sugar();
cup = new Cup();
milktea = new Milktea();
coffee = new Coffee();
}

public Water getWater() {
return water;
}

public Sugar getSugar() {
return sugar;
}

public Cup getCup() {
return cup;
}

public Milktea getMilktea() {
return milktea;
}

public Coffee getCoffee() {
return coffee;
}
public boolean isNotEmpty(){
return !water.isEmpty()&&
!coffee.isEmpty()&&
!milktea.isEmpty()&&
!sugar.isEmpty()&&
!cup.isEmpty();
}

}
20 changes: 20 additions & 0 deletions src/model/Coffee.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package model;

public class Coffee extends Material {

private final int MAX_NUM = 100;
protected final int ONE_CUP = 10;
protected final int HALF_CUP = 5;

public void fill() {
this.setQuantity(MAX_NUM);
}

public void useOneCup(){
this.setQuantity(this.quantity-=ONE_CUP);
}
public void useHalfCup(){
this.setQuantity(this.quantity-=HALF_CUP);
}

}
5 changes: 5 additions & 0 deletions src/model/CoffeeKind.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package model;

public enum CoffeeKind {
ESSPRESO,LIGHT,MILKTEA;
}
44 changes: 44 additions & 0 deletions src/model/Coin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package model;

import java.util.ArrayList;
import java.util.List;

public class Coin {
private int num = 0;
private List<CoinObserver> list;

public Coin(){
list = new ArrayList<CoinObserver>();
}
public void addObserver(CoinObserver co){
list.add(co);
}
public void removeObserver(CoinObserver co){
list.remove(co);
}
public void updateAll(){
for(CoinObserver co:list){
co.update(num);
}
}
public void putCoin(){
num++;
updateAll();
}

public void getCoin(){
if(num>0){
num--;
updateAll();
}
}

public int getNum() {
return num;
}

public boolean isEmpty(){
return num==0;
}

}
24 changes: 24 additions & 0 deletions src/model/CoinNumberLabel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package model;

import javax.swing.JLabel;

public class CoinNumberLabel extends JLabel implements CoinObserver {

private static CoinNumberLabel anInstance;

public static CoinNumberLabel getAnInstance(){
if(anInstance == null){
anInstance = new CoinNumberLabel();
}
return anInstance;
}

private CoinNumberLabel(){
this.setText("0");
}

public void update(int num) {
this.setText(""+num);
}

}
5 changes: 5 additions & 0 deletions src/model/CoinObserver.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package model;

public interface CoinObserver {
public void update(int num);
}
16 changes: 16 additions & 0 deletions src/model/Cup.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package model;

public class Cup extends Material {

private final int MAX_NUM = 10;
private final int ONE_CUP = 1;

public void fill() {
this.setQuantity(MAX_NUM);
}

public void useOneCup() {
this.setQuantity(quantity-=ONE_CUP);
}

}

0 comments on commit d9e2b87

Please sign in to comment.