本文和大家重点讨论一下UML类关系,类之间的关系最常见的有四种:依赖关系、泛化关系、关联关系、实现关系。这里向大家简单介绍一下UML类关系中的关联关系和实现关系。
1、关联关系(Association)
UML类关系中关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。也就是说,关联描述了系统中对象或实例之间的离散连接。在UML中,关联关系用一条连接两个类的实线表示
UML类关系中关联关系有6种对应的修饰,它们分别是:名称、角色、多重性、聚合、组合和导航性。
(1)、名称(Name)。名称用来描述关联的性质,通常使用一个动词或动词短语来命名关联。名称以前缀或后缀一个指引阅读的方向指示符以消除名称含义上可能存在的歧义,方向指示符用一个实心的三角形箭头表示。
(2)、角色(Role)。角色是关联关系中一个类对另一个类所表现出来的职责。角色名称是名词或名词短语,以解释对象是如何参与关联的。
(3)、多重性(Multiplicity)。约束是UML三大扩展机制之一,多重性是其中使用最广泛的一种约束。关联的多重性是指有多少对象可以参与该关联,多重性可以用来表达一个取值范围、特定值、无限定的范围或一组离散值。
(4)、聚合(Aggregation)。聚合关系表示整体和部分关系的关联。聚合关系描述了“hasa”的关系。在UML中聚合关系用带空心的实线来表示,其中头部指向整体。
(5)、组合关系(Composition)。组合关系是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合。在组合中,成员对象的生命周期取决于聚合的生命周期,聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和析构。在UML中,组合关系用带实心菱头的实线来表示,其中头部指向整体。
(6)、导航性(Nevigation)。导航性描述的是一个对象通过链(关联的实例)进行导航访问另一个对象,即对一个关联端点设置导航属性意味着本端的对象可以被另一端的对象访问。可以在关联关系上加箭头表示导航方向。只在一个方向上可以导航的关联称为单向关联(UnidirectionAssociation),用一条带箭头的实线来表示。在两个方向上都可以导航的关联称为双向关联(BidirectionAssociation),用一条没有箭头的实线来表示。另外使用导航性可以降低类之间的耦合度,在也是好的面向对象分析与设计的目标之一。
2、实现关系(Realization)
实现是规格说明和其实现之间的关系,它将一种模型元素与另一种模型元素连接起来,比如类和接口。
泛化和实现关系都可以将一般描述与具体描述联系起来。泛化将同一语义层上的元素连接起来,并且通常在同一模型内。实现关系则将不同语义层内的元素连接起来,通常建立在不同的模型内。
UML类关系中实现关系通常在两种情况下被使用:在接口与实现该接口的类之间;在用例以及实现该用例的协作之间。
在UML中,实现关系的符号与泛化关系的符号类似,用一条带指向接口的空心三角箭头的虚线表示。下图所示的是实现关系的一个示例,描述的是Keyboard保证自己的部分行为可以实现Typewriter的行为
UML类关系中实现关系还有一种省略的表示方法,即接口表示为一个小圆圈,并和实现接口的类用一条线段连接,如图
【编辑推荐】