命令模式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1:命令模式

一、实验目的

本实验要求学生掌握命令模式,要求学生理解命令模式中的四种角色并完成类的定义及测试。

二、实验任务

1.在军队作战中,指挥官请求三连偷袭敌人,但是指挥官不希望或无法直接与三连取得联系。使用命令模式分析有哪些类以及这些类的角色,完成这些类的定义并进行测试。

接收者:Receiver类

命令接口:Command类

具体命令:ConcreteCommand类

请求者: Invoker类

import ng.*;

class Receiver{

p ublic void sneakAttack(){

System.out.println("I konw");

}

}

interface Command{

p ublic abstract void execute();

}

class ConcreteCommand implements Command{

R eceiver army;

C oncreteCommand(Receiver army){

this.army = army;

}

p ublic void execute(){

army.sneakAttack();

}

}

class Invoker{

C ommand command;

p ublic void setCommand(Command command){

mand = command;

}

p ublic void startExecuteCommand(){

command.execute();

}

}

public class Main {

p ublic static void main(String [] args){

Receiver thirdArmy = new Receiver();

Command command = new ConcreteCommand(thirdArmy);

Invoker superior = new Invoker();

superior.setCommand(command);

superior.startExecuteCommand();

}

}

2.茱丽(Julia)不需要知道播音(play)、倒带(rewind)和停止(stop)功能是怎么具体执行的,这些命令执行的细节全都由键盘(Keypad)具体实施。茱丽(Julia)只需要在键盘上按下相应的键便可以了。使用命令模式分析有哪些类以及这些类的角色,完成这些类的定义并进行测试。

接收者:Play类Stop类Rewind类

命令接口:KeypadCommand类

具体命令:StopKeypadCommand类PlayKeypadCommand类RewindKeypadCommand类请求者:Julia类

import ng.*;

class Play{

p ublic void play(){

System.out.println("This is Play");

}

}

class Rewind{

p ublic void rewind(){

System.out.println("This is Rewind");

}

}

class Stop{

p ublic void stop(){

System.out.println("This is Stop");

}

}

interface KeypadCommand{

p ublic abstract void execute();

}

class PlayKeypadCommand implements KeypadCommand{

P lay play;

P layKeypadCommand(Play play){

this.play = play;

}

p ublic void execute(){

play.play();

}

}

class RewindKeypadCommand implements KeypadCommand{ R ewind rewind;

R ewindKeypadCommand(Rewind rewind){

this.rewind = rewind;

}

p ublic void execute(){

rewind.rewind();

}

}

class StopKeypadCommand implements KeypadCommand{

S top stop;

S topKeypadCommand(Stop stop){

this.stop = stop;

}

p ublic void execute(){

stop.stop();

}

}

class Julia{

K eypadCommand command;

p ublic void setCommand(KeypadCommand command){

相关文档
最新文档