C#编的,简单的对象交互案例,顾客点餐

本文通过一个简单的餐厅场景,展示了面向对象编程中的类和对象交互。顾客类负责点菜和用餐,服务员类负责接收点菜、通知厨师和传送菜品,厨师类则负责烹饪和通知服务员。程序通过方法调用和参数传递实现对象间的通信,模拟了实际业务流程。
摘要由CSDN通过智能技术生成
 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、分别初始化顾客、服务员、厨师、菜单对象,然后再给菜单对象的三个字段赋一个初始值,如果不赋值,编译过不了,最后调用相应了方法,把流程走一遍

   这只是简单的框架,没有具体行为,也没有和后台数据库进行交互

大家如果觉得还行的话,就帮忙关注一下吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值