模拟肯德基点餐系统

模拟肯德基点餐系统

// 食物基类
public abstract class AbstractBaseFood
{
 	protected String kind; // 类别
protected int num; // 数量
protected float price; // 价格 
public float totalPrice()// 合计
  {
    return this.num * this.price;
  }
}
// 抽象食物接口
 
public interface IFood
{
  //打印输出食物信息
  void printMesage();
}
// 汉堡基类
public abstract class Hamburg extends AbstractBaseFood implements IFood
{
  public void printMesage()
  {
    System.out.println("--" + this.kind + "风味汉堡,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());
  }
}

// 鸡翅基类
public abstract class ChickenWings extends AbstractBaseFood implements IFood
{
  public void printMesage()
  {
    System.out.println("--" + this.kind + "风味鸡翅,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());
  }
}
//薯条基类 
public abstract class FrenchFries extends AbstractBaseFood implements IFood
{
  public void printMesage()
  {
    System.out.println("--" + this.kind + "风味薯条,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());
  }
}
//饮料基类 
public abstract class Beverage extends AbstractBaseFood implements IFood
{
  public void printMesage()
  {
    System.out.println("--" + this.kind + "饮料,\t单价:" + this.price + ",\t数量:" + this.num + ",\t合计:" + this.totalPrice());
  }
}
//创建具体食物
//中国风味的麻辣鸡腿汉堡
public class ChinaHanburm extends Hamburg
{
  
  public ChinaHanburm(int num)
  {
    this.kind = "麻辣";
    this.price = 14.0f;
    this.num = num;
  }
}
// 鸡翅实现类 
public class ChinaChickenWings extends ChickenWings
{
  public ChinaChickenWings(int num)
  {
    this.kind = "奥尔良";
    this.price = 2.5f;
    this.num = num;
  }
} 
//薯条实现类
public class ChinaFrenchFries extends FrenchFries
{
  public ChinaFrenchFries(int num)
  {
    this.kind = "普通";
    this.price = 8.0f;
    this.num = num;
  }
}
//饮料实现类
public class ChinaBeverage extends Beverage
{
  public ChinaBeverage(int num)
  {
    this.kind = "可乐";
    this.price = 7.0f;
    this.num = num;
  }
}
// 创建肯德基抽象工厂基类
public interface IKfcFactory
{
  // 生产汉堡
  public Hamburg createHamburg(int num);
  // 生产薯条
  public FrenchFries createFrenchFries(int num);
  // 生产鸡翅
  public ChickenWings createChickenWings(int num);
  // 生产饮料
  public Beverage createBeverage(int num);
}
//创建具体工厂
public class ChinaKfcFactory implements IKfcFactory
{
  // 生产可乐
  public Beverage createBeverage(int num)
  {
    return new ChinaBeverage(num);
  }
  // 生产奥尔良烤鸡翅
  public ChickenWings createChickenWings(int num)
  {
    return new ChinaChickenWings(num);
  }
  // 生产薯条
  public FrenchFries createFrenchFries(int num)
  {
    return new ChinaFrenchFries(num);
  }
  // 生产麻辣风味鸡腿汉堡
  public Hamburg createHamburg(int num)
  {
    return new ChinaHanburm(num);
  }
}
//创建客户类 
public class Customer
{
  // 抽象工厂
  private IKfcFactory kfcFactory;
  // 构造方法将抽象工厂作为参数传入
  public Customer(IKfcFactory kfcFactory)
  {
    this.kfcFactory = kfcFactory;
  }
  
//订购食物
  // 订购麻辣鸡腿汉堡
  public float orderHamburg(int num)
  {
    // 获得麻辣鸡腿汉堡
    Hamburg hamburg = kfcFactory.createHamburg(num);
    // 输出订购信息
    hamburg.printMesage();
    // 返回总价
    return hamburg.totalPrice();
  }
  // 订购奥尔良烤鸡翅
  public float orderChickenWings(int num)
  {
    // 获得奥尔良烤鸡翅
    ChickenWings chickenWings = kfcFactory.createChickenWings(num);
    // 输出订购信息
    chickenWings.printMesage();
    // 返回总价
    return chickenWings.totalPrice();
  }
  // 订购薯条
  public float orderFrenchFries(int num)
  {
    // 获得薯条
    FrenchFries frenchFries = kfcFactory.createFrenchFries(num);
    // 输出订购信息
    frenchFries.printMesage();
    // 返回总价
    return frenchFries.totalPrice();
  }
  // 订购可乐
  public float orderBeverage(int num)
  {
    // 获得可乐
    Beverage beverage = kfcFactory.createBeverage(num);
    // 输出订购信息
    beverage.printMesage();
    // 返回总价
    return beverage.totalPrice();
  }
}
public class MainApp
{
  public static void main(String[] args)
  {
    IKfcFactory kfcFactory = new ChinaKfcFactory();
    Customer customer = new Customer(kfcFactory);
    // 一个麻辣鸡腿汉堡
    float hamhurgMoney = customer.orderHamburg(1);
    // 四个奥尔良烤鸡翅
    float chickenWingsMoney = customer.orderChickenWings(4);
    // 一包薯条
    float frenchFriesMoney = customer.orderFrenchFries(1);
    // 两杯可乐
    float beverageMoney = customer.orderBeverage(2);
    System.out.println("总计:" + (hamhurgMoney + chickenWingsMoney + frenchFriesMoney + beverageMoney));
  }
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值