设计模式---命令模式
package com.ibeifemg.ex4;
public abstract class Command {
	private Peddler peddler;
	
	
	public Command(Peddler peddler) {
		this.peddler = peddler;
	}
	
	public Peddler getPeddler() {
		return peddler;
	}
	public void setPeddler(Peddler peddler) {
		this.peddler = peddler;
	}
	public abstract void sail();
}
  package com.ibeifemg.ex4;
public class AppleCommand extends Command {
	public AppleCommand(Peddler peddler) {
		super(peddler);
	}
	public void sail() {
		this.getPeddler().sailApple();
	}
	
}
  package com.ibeifemg.ex4;
public class BananaCommand extends Command{
	public BananaCommand(Peddler peddler) {
		super(peddler);
	}
	public void sail() {
		this.getPeddler().sailBanana();
	}
}
  package com.ibeifemg.ex4;
/*
 * 小商贩
 */
public class Peddler {
	
	//卖苹果
	public void sailApple() {
		System.out.println("卖苹果");
	}
	
	//卖香蕉
	public void sailBanana() {
		System.out.println("卖香蕉");
	}
	
}
  原先是这样的
public class Waiter {
	private Command command;
	public Command getCommand() {
		return command;
	}
	public void setCommand(Command command) {
		this.command = command;
	}
	public void sail() {
		command.sail();
	}
}  现在
package com.ibeifemg.ex4;
import java.util.ArrayList;
import java.util.List;
public class Waiter {
	private List<Command> commands = new ArrayList<Command>();
	public void setOrder(Command command) {
		commands.add(command);
	}
	public void removeOrder(Command command) {
		commands.remove(command);
	}
	
	public void sail() {
		for(Command command : commands) {
			command.sail();
		}
	}
}
  

京公网安备 11010502036488号