题目详情

某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图6-1所示。

中级软件设计师,历年真题,2014年下半年(下午)《软件设计师》真题

【Java代码】

class Light{

public Light(  ){}

public Light(String name){/*代码省略*/}

public void on(  ){/*代码省略*/}//开灯

public void off(  ){/*代码省略*/}//关灯

//其余代码省略

}

(1){

public void execute(  );

}

class LightOnCommand implements Command{//开灯命令

Light light;

public LightOnCommand(Light light){this.light=light;}

public void execute(  ){(2);}

}

class LightOffCommand implements Command{//关灯命令

Light light;

public LightOffCommand(Light light){this.light=light;}

public void execute(  ){(3);}

}

class RemoteControl{//遥控器

Command[]onCommands=new Command[7];

Command[]offCommands=new Command[7];

public RemoteControl(  ){/*代码省略*/}

public void setCommand(int slot,Command onCommand,Command offCommand){

(4)=onCommand;

(5)=offCommand;

}

public void onButtonWasPushed(int slot){

(6);

}

public void offlButtonWasPushed(int slot){

(7);

}

}

class RemoteLoader{

public static void main(String[]args){

RemoteControl remoteControl=new RemoteControl(  );

Light livingRoomLight=new Light("Living Room");

Light kitchenLight=new Light("kitchen");

LightOnCommand livingRoomLightOn=new LightOnCommand(livingRoomLight);

LightOffCommand livingRoomLightOff=new LightOffCommand(livingRoomLight);

LightOnCommand kitchenLightOn=new LightOnCommand(kitchenLight);

LightOffCommand kitchenLightOff=new LightOffCommand(kitchenLight);

remoteControl.setCommand(0,livingRoomLightOn,livingRoomLightOff);

remoteControl.setCommand(1,kitchenLightOn,kitchenLightOff);

remoteControl.onButtonWasPushed(0);

remoteControl.offButtonWasPushed(0);

remoteControl.onButtonWasPushed(1);

remoteControl.offButtonWasPushed(1);

}

}

正确答案及解析

正确答案
解析

(1)interface Command

(2)light.on()

(3)light.off()

(4)onCommands[slot]

(5)offCommands[slot]

(6)onCommands[slot].execute()

(7)offCommands[slot].execute()

本题考察设计模式的实现,难度较小。根据类图和已有代码可写出空缺的代码.

(1)是Command接口的实现,应该填写interface Command;

(2)和(3)定义了开灯、关灯action,因此,分别填写(2)light->on()(3)light->off();

(4)(5)分别设置“开灯”命令对象、“关灯”命令对象,因此分别填写(4)onCommands[slot](5)offCommands[slot];

(6)(7)分别完成对开灯、关灯命令对象的execute方法的调用,因此分别填写(6)onCommands[slot].execute()

(7)offCommands[slot].execute()。

包含此试题的试卷

你可能感兴趣的试题

单选题

Advancements in ( )have contributed to the growth of the automotive industry through the creation and evolution of self-driving vehicles.

  • A.Artificial Intelligence
  • B.Cloud Computing
  • C.Internet of Things
  • D.Big Data
查看答案
单选题

In project human resource management , ( )is not a source of power for the project manager.

  • A.referent power
  • B.expert power
  • C.reward power
  • D.audit power
查看答案
单选题

At the project establishment stage , the feasibility study mainly includes techinical feasibility analysis , ( ), operation environment feasibility analysis and other aspects of feasibility analysis.

  • A.detail feasibility analysis
  • B.opportunity analysis
  • C.economic feasibility analysis
  • D.risk analysis
查看答案
单选题

( )is a grid that shows the project resources assigned to each work package.

  • A.Stakeholder engagement assessment matrix
  • B.Requirements traceability matrix
  • C.Probability and impact matrix
  • D.Responsibility assignment matrix
查看答案
单选题

Xinhua News Agency reported in January 2022,Chian will further promote the developmet of a digital economy during the 14th Five-Year Plan eriod(2021-2025). The plan also emphasized industrial ( )transformation.

  • A.digital
  • B.networking
  • C.intelligentize
  • D.informatization
查看答案

相关题库更多 +