命令模式---烧烤点单

有一个烧烤城,有两个摊位,一个摊位是烤鱼的,另外一个摊位可以烤肉串,也可以烤鸡翅。顾客不直接去摊位点食物,而是告诉服务员想吃什么,服务员去摊位下单并把烤好的食物拿给顾客。请用命令模式模拟这个过程。

 

Command.java

package BBQ;

public abstract class Command {
	public abstract void getFish();
	public abstract void getMeet();
	public abstract void getChicken();
}

 ConcreteCommand.java

package BBQ;

public class ConcreteCommand extends Command {

	private Receiver receiver = new  Receiver() ;
	
	
	public void getFish()
	{
		receiver.action();
	}
	public void getMeet()
	{
		receiver.action2();
	}
	public void getChicken()
	{
		receiver.action3();
	}
	
}
	

Customer.java

package BBQ;

public class Customer {
	private Command command;
	
	public Customer(Command command)
	{
		this.command=command;
	}
	
	
	public void call()
	{
		System.err.println("我要吃烤鱼");
		command.getFish();
	}
	public void call2()
	{
		System.err.println("我要吃烤肉");
		command.getMeet();
	}
	public void call3()
	{
		System.err.println("我要吃烤鸡翅");
		command.getChicken();
	}
} 

Receiver.java

package BBQ;

public class Receiver {
	
		public void action()
		{
			System.err.println("烤鱼正在下单--------");
			System.err.println("先生,您的烤鱼来了");
			
		}
		public void action2()
		{
			System.err.println("烤肉正在下单--------");
			System.err.println("先生,您的烤肉来了");
		}
		public void action3()
		{
			System.err.println("烤鱼正在下单--------");
			System.err.println("先生,您的烤鸡翅来了");
		}
		
}

Client.java

package BBQ;


public class Client {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		        Command cmd = new ConcreteCommand();  
		        Customer customer = new Customer(cmd);  
		        customer.call();  
		    }

}

运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值