为了避免使大家产生畏难情绪,本节先讲一个相对简单又相对普遍的问题。先看UML2.5.1中第13.2.3.5的如下内容:
A Behavior shall be the method for no more than one BehavioralFeature, called its specification.
翻译过来就是:
一个行为应该是不超过一个BehavioralFeature的方法,称为它的规范。
乍一看,这句话很令人费解:
什么叫做“行为”是“方法”?什么又成了“它的规范”?这个“它”指的又是什么?等等、等等。
我开始看到这句话时也是一头雾水。但是,一旦我们结合类图进行理解,这句话就不难理解了。先引入UML2.5.1中的相关类图Figure13.1中的一个片段。
图一、UML2.5.1中Figure13.1的一个局部截图。
通过这个二元关联,我们就会发现上面那句原文中的四个名词都有了出处:
关联端点之一:BehavioralFeature
角色名之一:specification(规范)
关联端点之二:Behavior(行为)
角色名之二:method(方法)
这是二元关联的一种固定表达模式:
一个关联此端(Behavior)是不超过关联另一端重数上界(这里是1)的关联另一端(BehavioralFeature)对应的关联此端的角色名(method),(BehavioralFeature)称为关联此端(Behavior)的关联另一端的角色名(specification)。
或者再简单一些:
- BehavioralFeature是Behavior的specification;
- Behavior是BehavioralFeature的method。
现在上面最后一个问题的答案就出来了:这个“它”指的就是“Behavior”。
这样一来,本文开始处的那句英文就好理解了。实际上,在UML2.5.1中有大量类似的句子,如果我们不结合类图来观察这些句子,就会感觉到一头雾水;而一旦我们结合相关类图来观察这些句子,就会好理解的多。
下一篇文章将介绍UML2.5.1类图中关联两侧出现频率最高的两个标记:subsets和redefines,其它标记都比较好理解,例如ordered、readOnly、union。其中的union稍微解释一下,其与subsets相关,表示其所在关联端点对象集合是所有subsets其的关联端点对象集合的并集。
参考文献:
UML2.5.1