将一个请求封装为一个对象,从而使你可用不同的请求对客户进行參数化;对请求排队或记录请求日志。以支持可撤销的操作。
命令模式的角色
1. client角色(Client):创建一个详细命令(ConcreteCommand)对象并确定其接收者。
2. 命令角色(Command):声明一个给全部命令类的抽象接口。
3. 详细命令角色(ConcreteCommand):定义一个接收者和行为之间的弱耦合;实现execute()方法,负责调用接收者的对应操作。execute()方法叫做运行方法。
4. 请求者角色(Invoker):负责调用命令对象运行请求,相关的方法叫做行动方法。
5. 接收者角色(Receiver):负责详细实施和运行一个请求。不论什么一个类都能够称为接收者,实施和运行请求的方法叫做行动方法。
举个简单样例(录音机有播音Play,倒带Rewind和停止Stop功能)
1 接收者角色
public class AudioPlayer
{
public void play()
{
System.out.println("Play");
}
public void rewind()
{
System.out.println("Rewind");
}
public void stop()
{
System.out.println("Stop");
}
}
2 抽象命令角色
public interface Command
{
public void execute();
}
3 详细命令角色
public class PlayCommand implements Command
{
private AudioPlayer myAudio;
public PlayCommand(AudioPlayer audioPlayer)
{
this.myAudio = audioPlayer;
}
@Override
public void execute()
{
myAudio.play();
}
}
public class RewindCommand implements Command
{
private AudioPlayer myAudio;
public RewindCommand(AudioPlayer audioPlayer)
{
this.myAudio = audioPlayer;
}
@Override
public void execute()
{
this.myAudio.rewind();
}
}
public class StopCommand implements Command
{
private AudioPlayer myAudio;
public StopCommand(AudioPlayer audioPlayer)
{
this.myAudio = audioPlayer;
}
@Override
public void execute()
{
this.myAudio.stop();
}
}
4 请求这角色(由按键扮演)
public class Keypad
{
private Command playCommand;
private Command rewindCommand;
private<
实现mypwd
2019-2020-1 20175310 20175317 20175320 实验五 通讯协议设计
2019-2020-1 20175310 20175317 20175320 实验四 外设驱动程序设计
课上测试
2019-2020-1 20175310 《信息安全系统设计基础》第九周学习总结
2019-2020-1 20175310 20175317 20175320 实验三 实时系统
2019-2020-1 20175310 20175317 20175320 实验二 固件程序设计
2019-2020-1 20175310 20175317 20175320 实验一 开发环境的熟悉
2019-2020-1 20175310 《信息安全系统设计基础》第6周学习总结
- 最新文章
-
参考伪代码实现ls的功能,提交代码的编译,运行结果截图,码云代码链接。
ls的功能
stat命令的实现-mysate(必做)
ucosii-2(选做)
linux pwd指令C语言实现——20175303
2019-2020-1 20175304 20175303 20175327 20175335 实验五 通讯协议设计
2019-2020-1 20175304 20175303 20175327 20175335 实验四-外驱设备
2019-2020-1 20175304 20175303 20175327 20175335 实验三-并发程序
2019-2020-1 20175304 20175303 20175327 20175335 实验二 固件程序设计
2019-2020-1 20175304 20175303 20175327 20175335 实验一 开发环境的熟悉
- 热门文章
-
2019-2020-1 20175208 20175230 实验五 通讯协议设计
2019-2020 20175208 实验四 外设驱动程序设计
2019-2020-1 20175208 实验三 并发程序
2019-2020-1 20175208 20175218 20175230 实验二 固件程序设计
20175208 张家华 2019——2020 实验一 开发化境的熟悉
20175208 2018-2019-实验五 网络编程与安全
20175208 张家华 MySort
20175208 张家华 实验四《Android开发基础》实验报告
20175208 《Java程序设计》第十一周学习总结
20175208 《Java程序设计》第十周学习总结