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