前页 后页

分类器和实例

某些类型的元素(例如,类)模型分类,它们提供了抽象概念的规范。例如,建筑物的概念可以用一组定义建筑物类型的类来表示,例如平房,矿工小屋,办公大楼,商店等。其他类型的元素(例如,对象)对此类分类进行建模,例如23 High Street Shop或45 Village Green Cottage。根据分类器元素的规范,实例元素代表运行时场景中的实际对象。例如:

  • Object元素表示一个称为Joe Smith的人,作为由Class元素Person定义的“一个人”概念的特定实例;该对象将呈现为显示分类器名称的矩形-如果您命名该对象,则该对象将变为<ObjectName>:<ClassifierName>,或者在此示例中为Joe Smith:Person

    Showing an Object element and the UML Class element that it is classified by.
如果您开发一个具有“年龄”,“名称”,“地址”和“性别”等属性以及诸如“ GetAge”和“ GetName”之类的功能的Person类,则从该类派生一个对象时,该对象将具有所有Person Class的行为和状态(以及(如果有)从Person类的父元素继承的状态和行为)。

将实例与分类器相关联可大大提高模型在运行时捕获对象的功能和职责及其相关状态的描述能力。这是将模型从分析阶段转移到详细设计的强大方法。

笔记

  • 对象是运行时分类器的实例,因此该对象的功能实际上是分类器的功能。如果您选择了“功能|属性”或“操作”菜单选项,“功能”窗口显示的是分类器,而不是对象
  • 同样,如果已在序列图中为对象设置了分类器,则在添加消息并显示消息的“属性”窗口时,“消息”下拉列表是从目标对象的分类器的操作中绘制的,而不是从物体本身
    这样,您可以将序列图对象与类相关联,并使用类的已定义行为在运行时对实际行为进行建模。相同的概念适用于状态流连接器的消息
  • 在“属性”窗口中,您还可以选择包括在目标的分类器的继承层次结构中定义的消息。

学到更多