饮料售货机JAVA代码 自动售货机饮料机代码( 二 )


《JAVA与模式》一书中使用java.text.DataFormat类作为简单工厂模式的典型例子叙述 。
简单工厂模式的优点
模式的核心是工厂类 。这个类含有必要的逻辑判断,可以决定在什么时候创建哪一个登录验证类的实例 , 而调用者则可以免除直接创建对象的责任 。简单工厂模式通过这种做法实现了对责任的分割,当系统引入新的登录方式的时候无需修改调用者 。
简单工厂模式的缺点
这个工厂类集中了所以的创建逻辑,当有复杂的多层次等级结构时,所有的业务逻辑都在这个工厂类中实现 。什么时候它不能工作了 , 整个系统都会受到影响 。
求一个简易自动售货机的代码(java)要用创建类封装性,输出的时候要有提示语句,代码类似以下图片//Example类文件Example.java
package cn.zhouhan;
import java.util.Scanner;
public class Example {
static Drink cola, fanta, blacktea, greentea;
static int money;
public static void main(String[] args) {
// TODO Auto-generated method stub
cola = new Drink("可乐", 50, 2.0, 1);
fanta = new Drink("芬达", 40, 3.0, 2);
blacktea = new Drink("红茶", 30, 4.0, 3);
greentea = new Drink("绿茶", 20, 5.0, 4);
money = 500;
for(;;)
{
System.out.println("-------------自动售货机-------------");
cola.UserPrintDrinkInfo();
fanta.UserPrintDrinkInfo();
blacktea.UserPrintDrinkInfo();
greentea.UserPrintDrinkInfo();
System.out.println("----------------------------------");
System.out.println("1.购买饮料");
System.out.println("2.管理员查询");
System.out.println("3.返回");
System.out.println("请输入要执行饮料售货机JAVA代码的操作序号:");
Scanner scannerIndex = new Scanner(System.in);
int indexScanner = scannerIndex.nextInt();
switch(indexScanner)
{
case 1:
System.out.println("请选择购买的饮料(1.可乐,2.芬达,3红茶,4.绿茶):");
Scanner numberScanner = new Scanner(System.in);
int buyIndex = numberScanner.nextInt();
Drink drink = getDrink(buyIndex);
System.out.println("请输入购买的数量:");
Scanner countScanner = new Scanner(System.in);
int buyCount = countScanner.nextInt();
if (buyCount0)
{
System.out.println("您选择了" + buyCount + "瓶" + drink.getName() + "." );
System.out.println("总价格:" + drink.getPrice() * buyCount + "元,请投入1元或5元纸币 。");
System.out.println("确定购买饮料售货机JAVA代码?(1.确定,2.退款):");
Scanner sureScanner = new Scanner(System.in);
int sure = sureScanner.nextInt();
if (sure == 1)
{
drink.sellDrink(buyCount);
money += drink.getPrice() * buyCount;
System.out.println("您购买了" + buyCount + "瓶" + drink.getName() + ",交易成功." );
}
if (sure ==2 )
{
System.out.println("退款成功!");
}
}
else
System.out.println("输入的数量有误!");
break;
case 2:
System.out.println("请输入管理员密码:");
Scanner pwScanner = new Scanner(System.in);
int password = pwScanner.nextInt();
if (password == 123)
{
System.out.println("密码正确,目前的余额为:" + money + "元 。");
}
else
System.out.println("密码错误 。");
break;
case 3:
break;
default:
System.out.println("请输入正确的数字 。");
break;
}
}
}
public static Drink getDrink(int drinkIndex)
{
Drink drink = null;
switch(drinkIndex)
{
case 1:
drink = cola;
System.out.println("您选择了可乐 。");
break;
case 2:
drink = fanta;

推荐阅读