知识卡片

查询命令分离

普通读书笔记卡 · 763.e

内容

查询不改变可观察状态,修改器改变状态。把二者分开能让调用顺序更可推理,也减少“取值顺便改状态”的隐性耦合。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南》第3章《类图:基础》(源文件:_epub-src/EPUB/2.xhtml) - 结论依据:原文围绕“命令 查询分离原则”给出定义、对比或使用限制,说明该概念的含义和适用边界,因此可推出本卡片结论。 - 原始内容:我发现强调查询很有帮助,因为你可以改变查询执行的次序,而不会改变系统行为。一个通常的惯例是尝试编写操作,使得修改器不返回值;这样,你可以依赖于这样的事实:返回值的操作是查询。[Meyer]把这称为命令 查询分离原则。有时总是这样做显得很尴尬,但在可以这样做时你应该尽可能这样做。