23种设计模式介绍(Python示例讲解)(27)
2023-04-30 来源:飞速影视
4、定义 Receiver 类:
class Light: def turn_on(self): print("The light is on") def turn_off(self): print("The light is off")
5、创建并使用命令:
light = Light()remote_control = RemoteControl()remote_control.add_command(LightOnCommand(light))remote_control.add_command(LightOffCommand(light))remote_control.execute_commands()
代码解释:
在这个例子中,我们首先定义了一个 Command 接口,该接口包含 execute 方法。然后,我们定义了两个具体命令类 LightOnCommand 和 LightOffCommand,它们实现了 Command 接口,并包含一个接收者对象 Light,实现了执行具体的业务逻辑。我们还定义了一个 Invoker 类 RemoteControl,它包含一个 Command 对象的列表,并提供了一个 add_command 方法用于添加 Command 对象。execute_commands 方法用于在需要时调用 Command 对象的 execute 方法。最后,我们定义了一个 Receiver 类 Light,它包含一些特定于应用程序的业务逻辑,实际执行命令。在客户端代码中,我们创建了一个 Light 对象和一个 RemoteControl 对象。
我们将 LightOnCommand 和 LightOffCommand 对象添加到 RemoteControl 对象的命令列表中,然后调用 execute_commands 方法来执行这些命令。
当我们执行这个程序时,它将输出以下内容:
The light is onThe light is off
这是因为我们创建了一个 Light 对象,然后使用 LightOnCommand 和 LightOffCommand 对象分别打开和关闭该对象。通过将命令对象和命令的接收者对象分开,我们可以轻松地添加、删除和替换命令,同时也使得程序更加灵活和可扩展。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号