概述
小明准备使用面向对象的方法设计一个快餐店的简单游戏:
游戏中有顾客、服务员、菜品和厨师。
每个顾客都有一个服务员帮助点菜,并且可以点多个菜;
每道菜都由指定厨师制作不同的菜可能由不同的厨师制作;
顾客跟服务员点完菜后,服务员通知后厨做菜。
请帮助小明选择一个合适的模式进行设计。
在实现的过程中,参考了大佬 https://blog.csdn.net/xxiaoEmma/article/details/102926595 的解决方案,哈希表确实便捷。
下面是本憨憨的实现:
package Mr_Ming;
public class Customer {
private Waiter waiter;
//每个顾客都有一个服务员帮忙点菜
public Customer() {
waiter = new Waiter();
}
public void Order(Dish dish) {
//点菜dish
waiter.getOrder(dish);
}
}
package Mr_Ming;
import java.util.HashMap;
public class Waiter {
private HashMap<String,Chief>map; // Hash表用来保存每个厨师对应一个菜
public Waiter() {
map = new HashMap<String, Chief>();
Chief chief_example = new Chief("example_chief");
map.put("example", chief_example);
} //服务员掏出了菜单
public void getOrder(Dish dish) { // 服务员接收到指定的菜单找厨师做菜
System.out.println(map.get(dish.name).name);
map.get(dish.name).cook();
}
}
package Mr_Ming;
public class Dish {
public String name; //菜肴的名称
//private Chief chief; //每道菜都由不同的厨师制作
public Dish(String n) { //初始化函数
name=n;
}
public void cook(Chief chief) { //由指定的chief做菜
chief.cook();
}
}
package Mr_Ming;
public class Chief {
public String name; //厨师的名称
public Chief(String n) {
name = n;
}
public void cook() {
System.out.println("做菜");
}
}
package Mr_Ming;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
Customer customer = new Customer();
Dish dish = new Dish("example");
customer.Order(dish);
}
}
最后
以上就是淡然鸡为你收集整理的设计模式——小明准备使用面向对象的方法设计一个快餐店的简单游戏的全部内容,希望文章能够帮你解决设计模式——小明准备使用面向对象的方法设计一个快餐店的简单游戏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复