设计模式之命令模式,command
来源:互联网 发布:美微网络电视看香蕉 编辑:程序博客网 时间:2024/05/26 07:30
Command定义: 将来自客户端的请求传入一个对象,无需了解这个请求激活的动作或有关接受这个请求的处理细节。
----------------------------------------
package liu.command.demo;
----------------------------------------
package liu.command.demo;
public abstract class Command {
Barbecuer receiver;
public Command(Barbecuer receiver){
this.receiver = receiver;
}
abstract public void ExecuteCommand();
}
----------------------------------------
package liu.command.demo;
public Command(Barbecuer receiver){
this.receiver = receiver;
}
abstract public void ExecuteCommand();
}
----------------------------------------
package liu.command.demo;
public class BakeMuttonCommand extends Command {
public BakeMuttonCommand(Barbecuer receiver) {
super(receiver);
}
super(receiver);
}
@Override
public void ExecuteCommand() {
receiver.BakeMutton();
public void ExecuteCommand() {
receiver.BakeMutton();
}
}
----------------------------------------
package liu.command.demo;
----------------------------------------
package liu.command.demo;
public class BakeChickenWingCommand extends Command {
public BakeChickenWingCommand(Barbecuer receiver) {
super(receiver);
}
super(receiver);
}
@Override
public void ExecuteCommand() {
receiver.BakeChickenWing();
public void ExecuteCommand() {
receiver.BakeChickenWing();
}
}
----------------------------------------
package liu.command.demo;
----------------------------------------
package liu.command.demo;
public class Barbecuer {
public void BakeMutton(){
System.out.println("烤羊肉串");
}
public void BakeChickenWing(){
System.out.println("烤鸡翅");
}
}
----------------------------------------
package liu.command.demo;
System.out.println("烤羊肉串");
}
public void BakeChickenWing(){
System.out.println("烤鸡翅");
}
}
----------------------------------------
package liu.command.demo;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Date;
import java.util.List;
public class Waiter {
private List<Command> orders = new ArrayList<Command>();
public void setOrder(Command command){
if(command.getClass().equals(BakeChickenWingCommand.class)){
System.out.println("服务员:鸡翅没有了,请点别的");
}
else{
orders.add(command);
Date d = new Date();
System.out.println("增加订单"+command.toString()+";时间:"+d.toString());
}
}
public void CancelOrder(Command command){
orders.remove(command);
Date d = new Date();
System.out.println("取消订单"+command.toString()+";时间:"+d.toString());
}
public void Notify(){
for(Command c:orders){
c.ExecuteCommand();
}
}
}
----------------------------------------
package liu.command.demo;
public void setOrder(Command command){
if(command.getClass().equals(BakeChickenWingCommand.class)){
System.out.println("服务员:鸡翅没有了,请点别的");
}
else{
orders.add(command);
Date d = new Date();
System.out.println("增加订单"+command.toString()+";时间:"+d.toString());
}
}
public void CancelOrder(Command command){
orders.remove(command);
Date d = new Date();
System.out.println("取消订单"+command.toString()+";时间:"+d.toString());
}
public void Notify(){
for(Command c:orders){
c.ExecuteCommand();
}
}
}
----------------------------------------
package liu.command.demo;
public class Main {
/**
* 命令模式
*/
public static void main(String[] args) {
Barbecuer boy = new Barbecuer();
Command bakeMuttonCommand1 = new BakeMuttonCommand(boy);
Command bakeMuttonCommand2 = new BakeMuttonCommand(boy);
Command bakeChickenWingCommand = new BakeChickenWingCommand(boy);
Waiter waiter = new Waiter();
waiter.setOrder(bakeMuttonCommand1);
waiter.setOrder(bakeMuttonCommand2);
waiter.setOrder(bakeChickenWingCommand);
waiter.Notify();
* 命令模式
*/
public static void main(String[] args) {
Barbecuer boy = new Barbecuer();
Command bakeMuttonCommand1 = new BakeMuttonCommand(boy);
Command bakeMuttonCommand2 = new BakeMuttonCommand(boy);
Command bakeChickenWingCommand = new BakeChickenWingCommand(boy);
Waiter waiter = new Waiter();
waiter.setOrder(bakeMuttonCommand1);
waiter.setOrder(bakeMuttonCommand2);
waiter.setOrder(bakeChickenWingCommand);
waiter.Notify();
}
}
- 设计模式之Command(命令)
- 设计模式之Command命令模式
- 设计模式之Command - 命令模式
- Java设计模式-之Command命令模式
- 设计模式 之 命令(command)模式
- 设计模式之Command - 命令模式
- 设计模式之Command(命令模式)
- 设计模式之(十六)命令模式Command
- 设计模式之Command(命令模式)
- 设计模式之命令模式(Command Pattern)
- 【设计模式】之 Command 命令模式
- 浅学设计模式之命令<command>模式
- 【设计模式】之命令模式(Command)
- 设计模式之 — Command命令模式
- java设计模式之命令模式Command
- 浅学设计模式之命令<command>模式
- 设计模式之命令模式(Command)
- 设计模式之命令模式,command
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- Cocos2d-x 实现时钟
- 霍夫变换(Hough Transform)直线检测
- Eclipse中快捷键
- HDU 1166(敌兵布阵)
- 设计模式之命令模式,command
- UISwitch
- Salesforce travel
- JS 将 格式化的时间 转换成 时间戳
- 安装vs2010 MSDN
- Mutex和内存可见性
- android自定义view–绘制顺序及相关原理
- Android Info类的总结
- 设计模式之访问者模式,visitor