首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

下令模式(Head First版)

2012-06-30 
命令模式(Head First版)用命令模式实现这样一个需求:有个按钮,将一盏电灯的开和关动作都绑定在这个按钮上。

命令模式(Head First版)

用命令模式实现这样一个需求:

有个按钮,将一盏电灯的开和关动作都绑定在这个按钮上。另外还有一个undo按钮,可撤消之前的一个动作。

?

下令模式(Head First版)

?

?

package com.headfirst.chapter6;public class RemoteControlTest {public static void main(String[] args) {Light light = new Light();LightOnCommand lightOnCommand = new LightOnCommand(light);LightOffCommand lightOffCommand = new LightOffCommand(light);SimpleRemoteControl simpleRemoteControl = new SimpleRemoteControl();simpleRemoteControl.setCommand(lightOnCommand);simpleRemoteControl.buttonWasPressed();simpleRemoteControl.setCommand(lightOffCommand);simpleRemoteControl.buttonWasPressed();simpleRemoteControl.undoButtonWasPressed();//做一次undo,状态又回到之前}}

?

?最后打印出:

?

the light is on

the light if off

the light is on

命令模式的定义:将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
上面的“队列或日志来参数化”的意思是有很多命令,以队列的方式先后执行。日志是指将每个操作动作“命令化”,记录在日志中。

?

热点排行