命令模式

   命令模式把方法调用封装起来,通过封装方法调用,可以把运算快封装成形。

加载调用过程:

1:首先创建一个命令对象

2:使用setCommand()将对象存储在调用者中

3:客户可以使用命令对象执行命令。

示例:

//命令接口

public interface Command{

public void excute(){};

}

//命令类

public class LightOnCommand implements Command

{

Light light;

public LightOnCommand(Light light)

{

this.light=light;

}

public void excute()

{

light.on();

}

}

//使用命令对象

public class SimpleRemoteControl

{

Command slot;

public SimpleRemoteControl()

{

this.slot=slot;

}

public void setCommand(Command c)

{

slot=c;

}

public void ButtonWasPressed()

{

slot.excute();

}

}

命令模式讲请求封装成对象,以便使用不同的请求、队列或者日志来参数化成其它对象。命令模式也支持可撤销的操作。

在实现遥控器的时候,可以用Command数组来存放命令,执行命令的时候按照数组下标来进行调用就OK了

命令模式应用:队列请求

讲日程安排,线程池,工作队列等对象作为一个工作队列。从队列中取出一个对象,执行命令就删除掉该对象,这些对象需要有统一的调用方法。

命令模式应用:日志请求

将操作记录在日志中,设置两个方法(store() load())一个负责记录操作状态,另一个是载入日志中记录的工作状态。

原文地址:https://www.cnblogs.com/macula7/p/1960843.html