C# 第四章 上機練習模擬顧客點餐
阿新 • • 發佈:2019-02-13
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cook { //顧客類 public class Client { /// <summary> /// 點菜 /// </summary> public void Order(Waitress waitress,Order order) { Console.WriteLine("顧客開始點菜:{0}!", order.mealList); waitress.GetOrder(order); } /// <summary> /// 用餐 /// </summary> public void Eat() { Console.WriteLine("客人用餐!"); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cook { /// <summary> /// 服務員類 /// </summary> public class Waitress { private Order order; /// <summary> /// 記錄客人的點餐 /// </summary> /// <param name="order"></param> public void GetOrder(Order order) { this.order = order; } /// <summary> /// 給廚師提交選單 /// </summary> ///<param name="client">點菜顧客的物件</param> public void SendOrder(Chef chef) { Console.WriteLine("服務員將菜{0}傳給廚師", order.mealList); chef.GetOrder(order); } /// <summary> /// 傳菜 /// </summary> public void TransCook() { Console.WriteLine("服務員將菜{0}送給客戶{1}!",order.mealList,order.id); order.customer.Eat(); } } }
namespace Cook { //廚師類 public class Chef { private Order order; /// <summary> /// 獲得選單 /// </summary> public void GetOrder(Order order) { this.order = order; } /// <summary> /// 廚師做菜 /// </summary> public void Cook() { Console.WriteLine("廚師烹製:{0}",order.mealList); Console.WriteLine("製作完畢"); } /// <summary> /// 提醒飯菜製作完畢 /// </summary> /// <param name="waitress"></param> public void SendAlert(Waitress waitress) { Console.WriteLine("廚師提示服務員取菜!"); waitress.GetOrder(order); } } }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cook
{
//選單類
public class Order
{
public Client customer; //顧客
public int id; //餐桌號
public string mealList; //點的選單
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/***
*
* 顧客(Client),服務員(Waitress),廚師 物件之間協作以完成點菜過程。
* 假設一個顧客的服務員負責將顧客點的菜傳給廚師,並把做好的菜傳給這個顧客。
* **/
namespace Cook
{
class Program
{
static void Main(string[] args)
{
//初始化客戶、服務員、廚師
Client wang = new Client();
Waitress waitress = new Waitress();
Waitress zhang = new Waitress();
Chef chef = new Chef();
//初始化點選單
Order order = new Order();
//設定訂了該選單的顧客
order.customer = wang;
order.id = 100;
order.mealList = "水煮魚";
//顧客wang選中waitress服務員給自己服務
wang.Order(waitress,order);
//服務員將選單資訊告知廚師chef
waitress.SendOrder(chef);
//廚師根據選單做菜
chef.Cook();
chef.SendAlert(waitress);
waitress.TransCook();
Console.Read();
}
}
}