我是靠谱客的博主 淡然鸡,这篇文章主要介绍设计模式——小明准备使用面向对象的方法设计一个快餐店的简单游戏,现在分享给大家,希望可以做个参考。

小明准备使用面向对象的方法设计一个快餐店的简单游戏:
游戏中有顾客、服务员、菜品和厨师。
每个顾客都有一个服务员帮助点菜,并且可以点多个菜;
每道菜都由指定厨师制作不同的菜可能由不同的厨师制作;
顾客跟服务员点完菜后,服务员通知后厨做菜。
请帮助小明选择一个合适的模式进行设计。


在实现的过程中,参考了大佬  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);
	}

}


 

最后

以上就是淡然鸡最近收集整理的关于设计模式——小明准备使用面向对象的方法设计一个快餐店的简单游戏的全部内容,更多相关设计模式——小明准备使用面向对象内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部