知识卡片

静态不变量与动态不变量

普通读书笔记卡 · 1958.l.6

内容

架构层面的不变量分两种:静态不变量限制实例的安排和数量结构,比如”每辆货车轮子数都是偶数”,UML类图里常表现为关联的多重性约束;动态不变量限制实例的行为,比如”只有打印驱动能给打印机发命令”。实践中静态不变量远比动态不变量常见,原因很直接:人脑思考”结构该长什么样”比思考”行为该如何随时间演变”容易得多——这解释了为什么”该不该关联”总比”该按什么顺序走”更容易讨论清楚。

参考来源

- 位置:《恰如其分的软件架构》第12章《模型元素》12.7节《不变量(约束)》(源文件:_epub-src/OEBPS/text00120.html) - 结论依据:原文区分静态不变量(限制实例安排和数量,如货车轮子数为偶数)和动态不变量(限制实例行为,如打印驱动权限),并说明实践中静态不变量更常见,因为人思考静态结构比思考行为更容易。 - 原始内容:静态不变量(static invariants)处理结构,动态不变量(dynamic invariants)处理行为……动态不变量限制了实例的行为……在实践中,你看到更多的是静态不变量,因为对人来说,思考静态不变量比精确地思考行为要困难得多。