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