命令设计模式

[size=large]命令设计模式:将请求封装成对象,这可以让你使用不同的请求、队列或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。

当需要将发出请求的对象和执行请求的对象解耦的时候使用命令模式。[/size]

代码:
//请求调用者
public class CommandMain {
Command command;

public void setCommand(Command command) {
this.command = command;
}

public void execute(){
command.execute();
}
}
//命令对象
public class LightCommand implements Command{
private Light light;
public LightCommand(Light light){
this.light = light;
}
@Override
public void execute() {
light.on();
}

}





[img]http://dl2.iteye.com/upload/attachment/0130/5926/882dc302-7d08-3e40-8865-642938b0d71e.png[/img]
命令设计模式是一种行为型设计模式,它允许将请求封装一个对象,从而使不同的请求能够在客户端之间进行参数化。下面是一个简单的命令设计模式的代码实现示例: ```python # 命令接口 class Command: def execute(self): pass # 具体命令类 class LightOnCommand(Command): def __init__(self, light): self.light = light def execute(self): self.light.on() class LightOffCommand(Command): def __init__(self, light): self.light = light def execute(self): self.light.off() # 接收者类 class Light: def on(self): print("灯已打开") def off(self): print("灯已关闭") # 调用者(遥控器)类 class RemoteControl: def __init__(self): self.commands = [] def add_command(self, command): self.commands.append(command) def execute_commands(self): for command in self.commands: command.execute() # 客户端代码 if __name__ == '__main__': light = Light() light_on_command = LightOnCommand(light) light_off_command = LightOffCommand(light) remote_control = RemoteControl() remote_control.add_command(light_on_command) remote_control.add_command(light_off_command) remote_control.execute_commands() ``` 在上面的示例中,我们定义了一个命令接口 `Command`,并实现了两个具体的命令类 `LightOnCommand` 和 `LightOffCommand`。这些具体命令类都实现了 `execute` 方法,用于执行相应的操作。`Light` 类是接收者类,它定义了真正执行操作的方法。`RemoteControl` 类是调用者类,它可以添加命令并执行它们。 在客户端代码中,我们创建了一个 `Light` 对象,并为它定义了打开和关闭的命令。然后,我们创建了一个遥控器对象 `RemoteControl`,并将命令添加到它里面。最后,我们调用 `execute_commands` 方法,执行所有添加的命令。 这就是一个简单的命令设计模式的代码实现示例。当然,实际应用可以更加复杂,可以根据具体需求进行扩展和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值