知识卡片

命令保存意图

普通读书笔记卡 · 1919.e

内容

用户操作被封装成命令对象后,请求可以排队、记录、撤销和重做。关键是保存“要做什么”及其必要上下文,而不是立刻把操作散落到界面回调里。发散:命令是可持久化的行为意图。

参考来源

- 位置:第2章《实例研究:设计一个文档编辑器》2.7.1节「封装一个请求」及2.7.2节「Command类及其子类」(源文件:_epub-src/OEBPS/Text/part0047.xhtml~part0048.xhtml) - 结论依据:原文说明应该用对象而不是函数来参数化MenuItem,因为函数难以解决撤销/重做、难以保存状态,命令对象封装了每一个请求,直接支持卡片对用户操作应封装成命令对象、保存'要做什么'及必要上下文的论述。 - 原始内容:"以上这些表明,我们应该用对象而不是函数来参数化MenuItem。我们可以通过继承扩充和复用请求实现。我们也可以保存状态和实现撤销/重做功能……我们将在command对象中封装每一个请求。"