知识卡片

命令模式的定义与三个角色

普通读书笔记卡 · 1870.b.1

内容

命令模式把请求封装成对象,可用不同参数化客户端、排队记录日志、支持撤销。三个角色: Receiver接收者(真正干活);Command命令(核心是execute方法);Invoker调用者(接收并 执行,不关心命令做什么)。发散:命令模式和[[代理模式的定义与三个角色]]都是”把动作包装 成对象插入间接层”,区别是代理关注控制访问,命令关注让请求本身可传递可排队可撤销。

参考来源

- 位置:《设计模式之禅(第2版)》第15章《命令模式》(源文件:_epub-src/text/part0068.html) - 结论依据:原文给出命令模式的正式定义并说明Receiver、Command、Invoker三个角色的职责,指出"命令模式比较简单,但是在项目中非常频繁地使用,因为它的封装性非常好,把请求方(Invoker)和执行方(Receiver)分开了"。 - 原始内容:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能……把请求方(Invoker)和执行方(Receiver)分开了,扩展性也有很好的保障。