现在的位置: 首页 > 综合 > 正文

uml之四种关系

2017年08月06日 ⁄ 综合 ⁄ 共 1485字 ⁄ 字号 评论关闭


    uml中定义的了四种大关系:关联、依赖、泛化、实现。关联又可以分为聚合和组合关系。这些关系在画图的过程中十分的重要。也就是这些关系,让我感觉无从下手。这里理一下思路,简单的总结一下。

一、关联关系

关联:是一种结构关系。指明了一个事物与另一个事物的对象之间的关系,当要表示结构关系时,就使用关联。

大致可以分为三种:

 1.普通关联:
种类:单项关联、双向关联、自身关联,是一个类和自己之间的关系。

2.聚合关系:地位平等,其中一个类描述了一个较大的事物“整体“,它由较小的事物(“部分”)组成。用空心菱形来表示,菱形指向整体。如书箱和书的关系。

3.组合关系:是附属关系,用一条带有实心菱形的线来表示,菱形指向整体。如人和四肢之间的关系。

区分聚合和组合:都是整体和部分之间关系,区分主要看有没有附属依存的关系,组合关系是附属关系。例如四肢不能离开人这个整体而存在。书和书页,先有书,后有页。聚合关系没有附属关系,书架和书,有书架不一定要有书。再如节点不能脱离列表而存在。


关联的修饰:

1、 名称。用以描述该关系的性质。如person类和Company类,那么关系就是Work for.人员为公司工作。
2、 角色。当一个类参与了一个关联时,那么就在这个关系中扮演了一个特殊的角色。如图中的employee和employmer,就是他们在这个关联中扮演的角色。
3、 多重性。在建模时,一个关联的实例中有多个相互联机的对象是很重要的,这个“多“就是角色的多重性。如一个公司可以雇佣一个或多个的对象,每个对象受雇于多个公司对象。(多重性为*表示)


二、依赖:一种使用关系。说明了一个事物使用另一个事物的信息和服务,但是反之未必。当要指明一个事物使用另一个事物时,就使用依赖关系。如果被使用的类,发生了变化,那么另一个类的操作也会受到影响。这种关系反应的是一个类使用到了另一个类,这种使用关系是偶然的、临时性的、非常弱的。例如某人要过河,需要一条船,这个人和船之间的关系就是依赖关系。再如,人们生活要有车有房,人和车房都是一种依赖关系。

表示:用一条带箭头的虚线指向被依赖的类。


三、泛化:一般/特殊关系,继承关系。”is a kind of “。这种方法,子元素共享了父元素的结构和行为。

如我们经常说,孩子长的像父亲或母亲,那就是说孩子肯定继承了父母的某些外貌上的基因,关于是好的坏的,咱就不管了。例如诗歌的鉴赏都是有规律的,所以我们学习的时候总是学习一些固定的模板,具体鉴赏的时候就可以拿着模板往上套。

表示:一条带有空心三角箭头的实现指向父类。

分类:

可以分为单重继承和多重继承。单重继承:一个子类有且只有一个父类。如一个孩子有且只有一个亲生父亲或母亲。多重继承:一个子类继承了两个或多个父类,父亲可以是多个。如一个水路两用的车,就继承了水车和路车两种车的优点,从而拥有更多的功能。再如我们吃的苹果梨,我觉得就是继承了苹果和梨的各自的特点(不知道真实是不是这样),这在我们水果嫁接的时候挺普遍的。


四、实现关系:类元之间的语义关系,其中一个类指定了由另一个保证执行的合约。即一个类实现接口(可以是多个)的功能;实现是类和接口之间最常见的关系

。用一条带有空心三角箭头的虚线指向接口。箭头指向接口。

几种关系表现的强弱的程度依次为:组合>聚合>关联>依赖

小结:

事物和事物之间都是有联系的,这些关系清晰的展现了uml中各个元素之间的关系。实践出真知,在不断的实践中,对于这些关系的理解也在不断的加深。刚开始的时候,连是什么什么的符合也是分不清楚,但是用手画了几遍之后,就能够熟悉的掌握了。重在实践,在实践中理解不断加深。

抱歉!评论已关闭.