知识卡片

动态分类与静态分类

普通读书笔记卡 · 1944.m

内容

对象能否在运行期改变自己的类型归属,是[[单重分类与多重分类|分类]]之外的另一个独立问题:动态分类(dynamic classification)允许对象在子类型化结构内改类,典型例子是银行账户透支后行为整体改变;静态分类(static classification)不允许换类,类型和状态被严格分开。作者认为多重、动态分类对概念建模有用,但软件实现落差太大,多数UML图应默认用单重、静态分类。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第5章《类图:进阶概念》(源文件:_epub-src/EPUB/4.xhtml) - 结论依据:原文定义"动态分类(dynamic classification)允许对象在子类型化结构内改变类;静态分类(static classification)不允许",并给出结论"从软件视角看,这些概念和实现之间有太大的鸿沟要跨越。在大多数UML图中,你只会看到单个、静态的分类"。 - 原始内容:动态分类(dynamic classification)允许对象在子类型化结构内改变类;静态分类(static classification)不允许。使用静态分类,类型和状态被分离……从软件视角看,这些概念和实现之间有太大的鸿沟要跨越……这应该是你默认的做法。