class Order //菜单类
{
public Client customer; //顾客
public int id; //餐桌号
public string mealList; //点的菜单
}
class Client //顾客类
{
//点菜
public void Order(Waitress waitress,Order order)
{
Console.WriteLine("顾客开始点菜:{0}!", order.mealList);
waitress.GetOrder(order);
}
//用餐
public void Eat()
{
Console.WriteLine("客人用餐!");
}
}
class Waitress //服务员类
{
private Order order;
//记录客人的点餐
public void GetOrder(Order order)
{
this.order = order;
}
//给厨师提交菜单
public void SendOrder(Chef chef)
{
Console.WriteLine("服务员将菜{0}传给厨师", order.mealList);
chef.GetOrder(order);
}
//传菜
public void TransCook()
{
Console.WriteLine("服务员将菜{0}送给用户{1}", order.mealList, order.id);
order.customer.Eat();
}
}
class Chef //厨师类
{
private Order order;
//获得菜单
public void GetOrder(Order order)
{
this.order = order;
}
//厨师做菜
public void Cook()
{
Console.WriteLine("厨师烹制:{0}", order.mealList);
Console.WriteLine("制作完毕");
}
//提醒饭菜制作完毕
public void SendAlert(Waitress waitress)
{
Console.WriteLine("厨师提示服务员取菜!");
waitress.GetOrder(order);
}
}
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.ReadLine();
}
下面写的只是我个人的看法,有可能不太对
对象间交互主要从三个方面来实现:参数传递、方法调用、属性操作
例子大致分析:首先要先编写4个类,分别是菜单类(Order),顾客类(Client),服务员类(Waitress)和厨师类(chef),其次写一个测试类,在当中编一个main方法(程序的入口函数),主要进行初始化操作
具体分析:1、菜单类中要定义customer字段来存储顾客对象
2、顾客类有两个方法,要有两个行为那菜单点菜、吃。点菜方法(参数传递)中传递两个参数,分别是服务员对象和菜单对象,来把菜单传递给服务员和调用order类中的mealList字段
3、服务员类三个方法和一个私有字段order,GetOrder()接受顾客的菜单,传递一个菜单对象(参数传递),私有字段order用来接受这个对象,SendOrder()把菜单传递给厨师,TransCook()就是菜做好了传递给顾客
4、厨师类三个方法和一个私有字段order,GetOrder()接受服务员传过来的菜单,Cook()厨师进行做菜,SendAlert()通知服务员菜做好了,把菜传递给顾客
5、分别初始化顾客、服务员、厨师、菜单对象,然后再给菜单对象的三个字段赋一个初始值,如果不赋值,编译过不了,最后调用相应了方法,把流程走一遍
这只是简单的框架,没有具体行为,也没有和后台数据库进行交互
大家如果觉得还行的话,就帮忙关注一下吧