命令模式 下载本文

实验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(\);