实验1:命令模式
一、实验目的
本实验要求学生掌握命令模式,要求学生理解命令模式中的四种角色并完成类的定义及测试。
二、实验任务
1.在军队作战中,指挥官请求三连偷袭敌人,但是指挥官不希望或无法直接与三连取得联系。使用命令模式分析有哪些类以及这些类的角色,完成这些类的定义并进行测试。
接收者:Receiver类 命令接口:Command类
具体命令:ConcreteCommand类
请求者: Invoker类
import java.lang.*;
class Receiver{
public void sneakAttack(){ } }
interface Command{
public abstract void execute(); }
class ConcreteCommand implements Command{ Receiver army;
ConcreteCommand(Receiver army){ }
public void execute(){ }
army.sneakAttack(); this.army = army;
System.out.println(\);
}
class Invoker{ Command command;
public void setCommand(Command command){ }
public void startExecuteCommand(){ } }
public class Main {
public static void main(String [] args){ } }
Receiver thirdArmy = new Receiver();
Command command = new ConcreteCommand(thirdArmy); Invoker superior = new Invoker(); superior.setCommand(command); superior.startExecuteCommand();
command.execute(); this.command = command;
2.茱丽(Julia)不需要知道播音(play)、倒带(rewind)和停止 (stop)功能是怎么具体执行的,这些命令执行的细节全都由键盘(Keypad)具体实施。茱丽(Julia)只需要在键盘上按下相应的键便可以了。使用命令模式分析有哪些类以及这些类的角色,完成这些类的定义并进行测试。
接收者:Play类 Stop类 Rewind类 命令接口:KeypadCommand类
具体命令:StopKeypadCommand类 PlayKeypadCommand类 RewindKeypadCommand类 请求者:Julia类
import java.lang.*;
class Play{
public void play(){ } }
class Rewind{
public void rewind(){ } }
class Stop{
public void stop(){
System.out.println(\); System.out.println(\);