深入理解23种设计模式(13) — 命令模式

  • Command : 定义命令的接口,声明执行的方法。
  • ConcreteCommand: 命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作
  • Receiver:接收者,真正执行命令的对象。任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能。
  • Invoker : 要求命令对象执行请求,通常会持有命令对象,可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方,也就是说相当于使用命令对象的入口。

案例:

  1. 我们买了一套智能家电,又照明灯、风扇、冰箱、洗衣机,我们手机安装app就可以控制这些家电工作
  2. 这些智能家电来自不同的厂家,我们不想针对每一个厂家都安装一个APP,我们希望一个APP控制全部家电
  3. 要实现一个APP控制所有智能家电,则每个智能厂家都需要提供一个统一都接口给app调用,这时就可以考虑命令模式
  4. 命令模式可以将 “动作的请求” 者 从 “动作的执行者” 对象解析出来

实现:

  1. 创建 Command 接口
  1. 实现 Command 接口 LightOffCommand 类
  1. 实现 Command 接口 LightOnCommand 类
  1. 接受者 LightReceiver
  1. 做一个空实现,用于初始化
  1. 执行者
  1. 客户端

深入理解23种设计模式(13) -- 命令模式

扩展

命令模式在Spring源码中使用 query 查询


                                                        

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月8日
下一篇 2021年1月8日

相关推荐