分分钟弄明白UML中泛化 , 实现 , 关联, 聚合, 组合, 依赖

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)

1. 泛化(Generalization)

【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性.

【箭头指向】:带三角箭头的实线,箭头指向父类

 

 

2. 实现(Realization)

【实现关系】:是一种类与接口的关系, 表示类是接口所有特征和行为的实现.

【箭头指向】:带三角箭头的虚线,箭头指向接口

 

3. 关联(Association)

【关联关系】:是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子

关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者

 

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

 

上图为自身关联

4. 聚合(Aggregation)

【聚合关系】:是整体与部分的关系, 且部分可以离开整体而单独存在. 如车和轮胎是整体和部分的关系, 轮胎离开车仍然可以存在.

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体

 

5. 组合(Composition)

【组合关系】:是整体与部分的关系, 但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门.

       组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

 

6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,  即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

 

各种关系的强弱顺序:

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

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

 

时间: 2024-10-12 18:59:09

分分钟弄明白UML中泛化 , 实现 , 关联, 聚合, 组合, 依赖的相关文章

UML关系(泛化,实现,依赖,关联(聚合,组合))

UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图 事物是对模型中最具代表性的成分的抽象:关系把事物结合在一起:图聚集了相关的事物. (2) 关系(4种) UML 中类与类, 类与接口, 接口与接口这间的关系有: 泛化(generalization) 关系, 关联(association)关系( 关联,

uml2-在uml中一个属性可以由类中的其它属性计算出来,这个属性在uml中怎么表示?

问题描述 在uml中一个属性可以由类中的其它属性计算出来,这个属性在uml中怎么表示? 在uml中一个属性可以由类中的其它属性计算出来,这个属性在uml中怎么表示? 解决方案 就是依赖关系http://justsee.iteye.com/blog/808799

UML中关联,组合与聚合等关系的辨析

以前学习面向对象的时候,常听到介绍对象之间的各种关系,常见的有关联,组合与聚合. 关联: 关联是一种最普遍和常见的关系形式.一般是指一个对象可以发消息给另外一个对象.典型的实现情况下指某个对象有一个指针或者引用指向一个实体变量,当通过方法的参数来传递或者创建本地变量来访问这种情况也可以称之为关联. 典型的代码如下: class A   {       private B itemB;   } 也可能有如下的形式: class A   {       void test(B b) {...}  

uml建模语言-uml中的关系都有什么别名

问题描述 uml中的关系都有什么别名 最近刚学了uml,其中有五个关系:依赖,关联,聚合,泛化,实现.这五个关系是否还有别的名字表达,比如包含,他和上面那个关系是对等的 解决方案 (1).用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系 (2).类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构) (3).对象图:是类图的一种实例化图(对象图是对类图的一种实例化) (4).包图:是一种分组机制.在UML1.1版本中,包图不再看作一种

UML中的依赖关系

问题描述 我是小白,刚学设计模式,被一些概念性问题困住了UML中的依赖关系说是如果有其中一个类变化,有可能会引起另一个类的变化这个变化我就不明白了,是类的设计(比如增加属性,修改方法)变化呢,还是类的对象变化啊? 解决方案 很久没看资料了.印象中,UML的类的关系有3种:1.继承.实现关系: 这个不用多说了 (UML图中的空心.或实心三角形) (Java代码中的extends.implements)2.组合.聚合关系: 某个对象是另一个对象的一部分. 如果容器对象 对子对象的生命周期负责,那么是

mfc求助-MFC中编辑框关联的变量使用updatedate(fasle)

问题描述 MFC中编辑框关联的变量使用updatedate(fasle) MFC中编辑框关联的变量使用updatedate(fasle) 怎么不好改变编辑框中的显示的值 而是需要点编辑框才会改变(编辑框没设响应函数) 解决方案 是false还是true我忘了,但是肯定会改变的,如果没改变,说明你的消息映射或其他什么的没有弄对. 解决方案二: updatedate(fasle)之后,编辑框调用invalidate()试下 解决方案三: 是要用updatedate(TRUE)来对控件跟控件关联的变量

java 反射的问题 还是没弄明白

问题描述 java 反射的问题 还是没弄明白 通过Class test=Class.forName(""Test"");拿到了类同过Method method=test.getMethod(""getName""String.class)拿到了方法执行method.invoke(test.newInstance());这就是执行了Test.getName()方法. 还是没弄明白,Class.forName(str)是个参数ge

云数据中心将替代IDC?先弄明白区别再说

随着云数据中心的逐步兴起,传统IDC服务商不得不思考转型的问题.如今的IDC业务一般分成两块,一是传统的托管服务,二是云计算服务.云数据中心的基础设备更加规模化.标准化,由此带来了管理的复杂性.此外,云数据中心为了节省成本.实现日益增多的业务,必须采用各种虚拟化技术.与之相比,传统IDC多数是支撑电信运营商数据业务,并有明确的跨网和区域性限制. 云数据中心将替代IDC?先弄明白区别再说 云数据中心将替代IDC?先弄明白区别再说(图片来自Yahoo) 目前,美国70%的企业在云中运行至少一个应用程

中国铁建否认入股国米:连足球规则都没弄明白

8月2日清晨,一条爆炸性的消息就传遍了体育界和市场.国际米兰网站上午披露,当天已经与中国一家投资集团签约,有媒体披露,与之签约的正是中国铁建集团,据称中铁建将斥资0.9亿美元收购国际米兰足球队15%的股份. 一家传统的工程建筑商涉足体育领域,究竟是何缘由?市场尚未深入猜测,中铁建集团董事长孟凤朝向记者独家回应,传闻不实,当晚将出澄清公告.中国铁建董秘余兴喜也向记者表示,无论是该集团还是股份公司及其下属公司,没有参与此项收购,该公司亦不考虑投资体育这种不熟悉的领域. 但余兴喜承认中铁建下属的中铁十