《JAVA与模式》第21天―命令模式 (三)

2014-11-24 08:31:55 · 作者: · 浏览: 11

[java]
package com.bankht.Command.recorder;

/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:33:25
*
* @类说明 :具体命令角色类-停止
*/
public class StopCommand implements Command {
private AudioPlayer myAudio;

public StopCommand(AudioPlayer audioPlayer) {
myAudio = audioPlayer;
}

@Override
public void execute() {
myAudio.stop();
}

}
package com.bankht.Command.recorder;

/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:33:25
*
* @类说明 :具体命令角色类-停止
*/
public class StopCommand implements Command {
private AudioPlayer myAudio;

public StopCommand(AudioPlayer audioPlayer) {
myAudio = audioPlayer;
}

@Override
public void execute() {
myAudio.stop();
}

}

  请求者角色,由键盘类扮演

[java]
package com.bankht.Command.recorder;

/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:35:52
*
* @类说明 :请求者角色,由键盘类扮演
*/
public class Keypad {
private Command playCommand;
private Command rewindCommand;
private Command stopCommand;

public void setPlayCommand(Command playCommand) {
this.playCommand = playCommand;
}

public void setRewindCommand(Command rewindCommand) {
this.rewindCommand = rewindCommand;
}

public void setStopCommand(Command stopCommand) {
this.stopCommand = stopCommand;
}

/**
* 执行播放方法
*/
public void play() {
playCommand.execute();
}

/**
* 执行倒带方法
*/
public void rewind() {
rewindCommand.execute();
}

/**
* 执行播放方法
*/
public void stop() {
stopCommand.execute();
}
}
package com.bankht.Command.recorder;

/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:35:52
*
* @类说明 :请求者角色,由键盘类扮演
*/
public class Keypad {
private Command playCommand;
private Command rewindCommand;
private Command stopCommand;

public void setPlayCommand(Command playCommand) {
this.playCommand = playCommand;
}

public void setRewindCommand(Command rewindCommand) {
this.rewindCommand = rewindCommand;
}

public void setStopCommand(Command stopCommand) {
this.stopCommand = stopCommand;
}

/**
* 执行播放方法
*/
public void play() {
playCommand.execute();
}

/**
* 执行倒带方法
*/
public void rewind() {
rewindCommand.execute();
}

/**
* 执行播放方法
*/
public void stop() {
stopCommand.execute();
}
}

  客户端角色,由茱丽小女孩扮演

[java]
package com.bankht.Command.recorder;

/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:36:17
*
* @类说明 :客户端角色,由茱丽小女孩扮演
*/
public class Julia {
public static void main(String[] args) {
// 创建接收者对象
AudioPlayer audioPlayer = new AudioPlayer();
// 创建命令对象
Command playCommand = new PlayCommand(audioPlayer);
Command rewindCommand = new RewindCommand(audioPlayer);
Command stopCommand = new StopCommand(audioPlayer);
// 创建请求者对象
Keypad keypad = new Keypad();
keypad.setPlayCommand(playCommand);
keypad.setRewindCommand(rewindCommand);
keypad.setStopCommand(stopCommand);
// 测试
keypad.play();
keypad.rewind();
keypad.stop();
keypad.play();
keypad.stop();
}
}
package com.bankht.Command.recorder;

/**
* @author: 特种兵—AK47
* @创建时间:2012-7-2 下午02:36:17
*
* @类说明 :客户端角色,由茱丽小女孩扮演
*/
public class Julia {
public static void main(String[] args) {
// 创建接收者对象
AudioPlayer audio