设计模式之命令模式
来源:互联网 发布:进击的巨人知乎 编辑:程序博客网 时间:2024/04/29 19:30
命令模式可将“动作请求者”从“动作执行者”对象中解耦。
利用“命令对象”,把请求封装成一个特定的对象,命令对象与执行对象沟通。
Command接口:
public interface Command { public void Execute(); }
public class LightOnCommand:Command { private Light light; public LightOnCommand(Light light) { this.light = light; } public void Execute() { light.On(); } }
public class DoorOpenCommand:Command { private Door door; public DoorOpenCommand(Door door) { this.door = door; } public void Execute() { door.Open(); } }2个命令对象抽取出来。
Door和Light对象:
public class Door { public void Open() { } public void Close() { } } public class Light { public void On() { } public void Off() { } }执行对象:
public class SimpleRemoteControl { private Command slot; public Command Slot { get { return slot; } set { slot = value; } } public void ButtonWasPressed() { slot.Execute(); } }Test:
static void Main(string[] args) { SimpleRemoteControl control = new SimpleRemoteControl(); Light light = new Light(); LightOnCommand onCommand = new LightOnCommand(light); control.Slot = onCommand; control.ButtonWasPressed(); Door door = new Door(); DoorOpenCommand openCommand = new DoorOpenCommand(door); control.Slot = openCommand; control.ButtonWasPressed(); }这就是一个简单的命令模式例子,在这个基础上,还可以衍生发展 多命令组合、撤销操作、队列处理等操作。
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之--命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之--命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之 命令模式
- 谈谈哲学和人性
- 如何让自己的内心强大起来
- 中国式危机公关9加1策略(第二章 沉默策略)
- 一个程序员的创业历程
- tsal开发文档
- 设计模式之命令模式
- 解决google搜所敏感词汇被重置问题
- JS的数组复制及字符串的相关操作
- Linux下终端的快捷键及建立打开终端的快捷键
- javascript 使超链接点击后只变色不转发 javascript:void(0)
- Collection(一)初步
- Ora-600 [Unable To Load Xdb Library] in AIX
- SQL Error (1130): Host IP is not allowed to connect to this MySQL server
- 移动终端与云计算