uml类图关系总结

参考资料


http://blog.csdn.net/lovelion/article/details/7838679

http://www.open-open.com/lib/view/open1328059700311.html

uml类图关系种类


       在uml类图中,经常使用的类关系有如下几种:泛化generalization)、实现realization)、关联association)、聚合aggregation)、组合composition)、依赖dependency)。

       各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

泛化(generalization)


• 关系说明

        泛化关系通常称为继承关系,用于描述父类与子类之间的继承关系,表示一般与特殊的关系。泛化关系指定了子类如何特化父类的所有特征和行为的规则。父类又称作基类或超类,子类又称作派生类。在UML类图中,泛化关系用带空心三角形的实线来表示

• 类图举例

实现(realization)


• 关系说明

       是一种类与接口的关系,表示类是接口所有特征和行为的实现。在这种关系中,类实现了接口,接口声明了要继承它的类必须要实现的操作。在UML类图中,实现关系用带空心三角形的虚线来表示

• 类图举例

 

关联(association)


• 关系说明

       关联关系是类与类之间最常见的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。在编程语言中,实现关联关系时,通常将一个类的对象作为另一个类的成员变量来表示

• 关联种类

       关联关系分成双向关联单向关联自关联多重性关联四种。

▶ 双向关联

       默认情况下,关联关系是双向的。双向关联用带两个箭头或没有箭头的实线表示

▶ 单向关联

       类与类的关联关系也可以是单向的。单向关联用带箭头的实线表示

▶ 自关联

       在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。自关联用指向自身的带箭头实线表示

▶ 多重性关联

       多重性关联关系其实是为关联关系增加一个属性,表示两个关联对象在数量上的对应关系。重性关联可以直接在关联直线上用一个数字或一个数字范围表示

• 类图举例

聚合(aggregation)


• 关系说明

       聚合关系是一种特殊的关联关系,表示整体与部分的关系,是强的关联关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。即成员对象和整体对象的生命周期不同,这是用以区分其与组合关系不同的关键,因为组合和聚合在语法上是无法进行区分的。聚合关系用带空心菱形的实线表示。在编程语言中,实现关联关系时,通常将一个类的对象作为另一个类的成员变量来表示

• 类图举例

组合(composition)


• 关系说明

        聚合关系是一种特殊的关联关系,表示整体与部分的关系,是比聚合关系还要强的关联关系。在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。即成员对象和整体对象的生命周期是一致的,这是用以区分其与组合关系不同的关键,因为组合和聚合在语法上是无法进行区分的。聚合关系用带实心菱形的实线表示。在编程语言中,实现关联关系时,通常将一个类的对象作为另一个类的成员变量来表示

• 类图举例

依赖(dependency) 


• 关系说明

       依赖关系是一种使用的关系。某个事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。在编程语言中,实现关联关系时,通常将一个类的对象作为另一个类的局部变量、成员方法的参数,或一个类对象对另一个类对象静态方法的调用来表示

• 类图举例

综合举例


       下面这张UML图,比较形象地展示了各种类图关系:

 

posted @ 2015-12-05 20:14  碎语心弦  阅读(1213)  评论(0编辑  收藏  举报