UML 中类图的关系及表示方法
来源:互联网 发布:重大资产置换 知乎 编辑:程序博客网 时间:2024/04/30 22:54
类图(Class Diagram)是显示出类、接口以及他们之间的静态结构与关系的图。其中最基本的单元是类或接口。类图不但可以表示类(或者接口)之间的关系,也可以表示对象之间的关系。下面是一个典型的类图:
类图一般分为几个部分:类名、属性、方法
常见的关系有:继承(Generalization),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency)。
(1)继承关系:泛化、一般化
Generalization表示的是类与类之间的继承关系、接口与接口之间的继承关系、类与接口之间的实现关系。如果体现到Java语言中,那就是反应extends和implements关键字。其典型类图如下所示:
·空心箭头加实线,表示泛化generalization(继承inheritance)关系;
- 表示实现。
图1 图2
图1 继承 ,图2 实现
(2)Association:关联关系
关联关系描述的是类与类之间的连接,他表示一个类知道另一个类的属性和方法。关联关系可以是单向的或者双向的。在Java语言中,单向的关联关系是通过以实例变量的方式持有被关联对象的引用来实现的。一般来说是不建议使用双向的关联关系的。下面举例介绍单向的关联关系。
·
上面的类图表现的是骑手和马之间的关系。Rider中有一个实例变量类型是Horse。
每个连接都会有两个端点,上面的Rider和Horse就是端点,且每个端点都可以有(optional)一个基数(multiplicity),表示这个类可以有几个实例。这个类似于数据库中的1:n、m:n这些关系。我们可以给上面的例子加上基数:
上面表示的是骑手与马之间的1对n关系。
(3)Aggregation:聚合关系
聚合关系是关联关系的一部分,是非常强的关联关系。聚合关系表现的更多的是整体与部分的关系。例如汽车和车门、发动机之间的关系。如图所示:
·
图3
与关联关系一样,聚合关系也是通过实例变量实现的。单纯从语法的角度基本上无法判断出关联关系和聚合关系。
(4) 合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享
将图3中的空心方块变为实心方块就可以,个人理解认为是一种类中定义类的关系,一旦代表整体的对象消失,代表部分的对象就消失。也就是而且如果组合对象销毁的话,被组合的对象也会同时被销毁;
·
(5)依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
表示方法:虚线+箭头
·
资料整理与网络
参考http://blog.163.com/haizai219@126/blog/static/444125552007112582734207/ 等图。
·
- UML 中类图的关系及表示方法
- UML类图元素及关系表示方法
- UML关系表示方法收藏
- UML关系表示方法收藏
- UML类图中常用的几个关系及表示法
- UML表示类的关系
- UML关系及java代码表示
- UML类图关系表示方法
- UML类图关系表示方法
- UML各种对象、关系表示方法
- UML类图关系表示方法
- UML基础(一)——UML中的类(接口)以及类关系的表示方法
- UML基础(二)——UML中的类(接口)以及类关系的表示方法
- UML基础(一)——UML中的类(接口)以及类关系的表示方法
- UML基础(二)——UML中的类(接口)以及类关系的表示方法
- UML用例、类图中关系的表示
- UML类图之间的关系表示
- uml类图(Class Diagram)中类与类之间的关系及表示方式
- 《C++第八周实验报告2-1》---实现Time类中的运算符重载
- 情人
- android Application Component研究之Activity(一)
- 信息系统开发中项目文档与配置管理的作用
- HTML与CSS入门经典(第7版)-4.9-103
- UML 中类图的关系及表示方法
- 《C++第八周实验报告3-1》---实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算
- 第八周实验报告 任务三(改)
- Java线程(六):线程池
- 2012腾讯 实习生笔试题目b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i];
- Spring MVC过滤器-上下文信息过滤器(AbstractRequestLoggingFilter及其子类)
- Firebug入门指南
- 获取用户的当前位置的步骤
- 五大著名的免费SQL注入漏洞扫描工具