* @创建时间:2012-7-2 上午11:41:21
*
* @类说明 :接收者角色类
*/
public class Receiver {
/**
* 真正执行命令相应的操作
*/
public void action() {
System.out.println("执行操作");
}
}
package com.bankht.Command;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 上午11:41:21
*
* @类说明 :接收者角色类
*/
public class Receiver {
/**
* 真正执行命令相应的操作
*/
public void action() {
System.out.println("执行操作");
}
}
AudioPlayer系统
小女孩茱丽(Julia)有一个盒式录音机,此录音机有播音(Play)、倒带(Rewind)和停止(Stop)功能,录音机的键盘便是请求者(Invoker)角色;茱丽(Julia)是客户端角色,而录音机便是接收者角色。Command类扮演抽象命令角色,而PlayCommand、StopCommand和RewindCommand便是具体命令类。茱丽(Julia)不需要知道播音(play)、倒带(rewind)和停止(stop)功能是怎么具体执行的,这些命令执行的细节全都由键盘(Keypad)具体实施。茱丽(Julia)只需要在键盘上按下相应的键便可以了。
录音机是典型的命令模式。录音机按键把客户端与录音机的操作细节分割开来。

源代码
接收者角色,由录音机类扮演
[java]
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:30:19
*
* @类说明 :接收者角色,由录音机类扮演
*/
public class AudioPlayer {
public void play() {
System.out.println("播放...");
}
public void rewind() {
System.out.println("倒带...");
}
public void stop() {
System.out.println("停止...");
}
}
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:30:19
*
* @类说明 :接收者角色,由录音机类扮演
*/
public class AudioPlayer {
public void play() {
System.out.println("播放...");
}
public void rewind() {
System.out.println("倒带...");
}
public void stop() {
System.out.println("停止...");
}
}
抽象命令角色类
[java]
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:30:44
*
* @类说明 :抽象命令角色类
*/
public interface Command {
/**
* 执行方法
*/
public void execute();
}
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:30:44
*
* @类说明 :抽象命令角色类
*/
public interface Command {
/**
* 执行方法
*/
public void execute();
}
具体命令角色类
[java]
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:31:27
*
* @类说明 :具体命令角色类-播音
*/
public class PlayCommand implements Command {
private AudioPlayer myAudio;
public PlayCommand(AudioPlayer audioPlayer) {
myAudio = audioPlayer;
}
/**
* 执行方法
*/
@Override
public void execute() {
myAudio.play();
}
}
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:31:27
*
* @类说明 :具体命令角色类-播音
*/
public class PlayCommand implements Command {
private AudioPlayer myAudio;
public PlayCommand(AudioPlayer audioPlayer) {
myAudio = audioPlayer;
}
/**
* 执行方法
*/
@Override
public void execute() {
myAudio.play();
}
}
[java]
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:32:40
*
* @类说明 :具体命令角色类-倒带
*/
public class RewindCommand implements Command {
private AudioPlayer myAudio;
public RewindCommand(AudioPlayer audioPlayer) {
myAudio = audioPlayer;
}
@Override
public void execute() {
myAudio.rewind();
}
}
package com.bankht.Command.recorder;
/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:32:40
*
* @类说明 :具体命令角色类-倒带
*/
public class RewindCommand implements Command {
private AudioPlayer myAudio;
public RewindCommand(AudioPlayer audioPlayer) {
myAudio = audioPlayer;
}
@Override
public void execute() {
myAudio.rewind();
}
}