- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UML类图各符号含义
类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形
和实心菱形。由这些基本的图形进行组合构成了类图的基本符号。这里要注意这
几个符号的顺序,代表了类与类之间关系的耦合程度。越向右耦合度越高。
其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三
角表示implements,实线+空心右三角表示的是泛化,即类的继承关系。实线+空
心菱形表示的是聚合的关系,实线+实心菱形则表示组合的关系。
另外一点是在看类图的时候要注意。类图的思想其实也还没有脱离面向对象的思
想,以某个类为中心,有些线是射入的而有些线是射出的。射入的线表示的是这
个类被哪些类所调用而射出的线则表示该类调用了哪些类,包括泛化,关联,依
赖,聚合和组合四种关系。这类似于离散数学中有关图部分的描述。
1. 类(Class ):使用三层矩形框表示。
第一层显示类的名称,如果是抽象类,则就用斜体显示。
第二层是字段和属性。
第三层是类的方法。
注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。
2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有interface显示 。
第一行是接口名称。
第二行是接口方法。
3. 继承类(extends ) :用空心三角形+实线来表示。
4. 实现接口(implements) :用空心三角形+虚线来表示
5. 关联(Association ) :用实线箭头来表示,例如:燕子与气候
6. 聚合(Aggregation ) :用空心的菱形+实线箭头来表示
聚合:表示一种弱的‘拥有’关系,体现的是A 对象可以包含B 对象,但B 对象不
是A 对象的一部分,例如:公司和员工
组合(Composition ):用实心的菱形+实线箭头来表示
组合:部分和整体的关系,并且生命周期是相同的。例如:人与手
7. 依赖(Dependency) :用虚线箭头来表示,例如:动物与氧气
8. 基数 :连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该
有两只翅膀。如果一个类可能有无数个实例,则就用‘n’来表示。关联、聚合、组
合是有基数的。
类之间的关系
UML 把类之间的关系分为以下5 种.
● 关联:类A 与类B 的实例之间存在特定的对应关系
● 依赖:类A 访问类B 提供的服务
● 聚集:类A 为整体类,类B 为局部类,类A 的对象由类B 的对象组合而成
● 泛化:类A 继承类B
● 实现:类A 实现了B 接口
关联(Association )
关联指的是类之间的特定对应关系,在UML 中用带实线的箭头表示。按照
类之间的数量对比,关联
可以分为以下三种:
● 一对一关联 ● 一对多关联 ● 多对多关联
注意:关联还要以分为单向关联和双向关联
依赖(Dependency)
依赖指的是类之间的调用关系,在UML 中用带虚线的箭头表示。如果类A
访问类B 的属性或者方法,
或者类A 负责实例化类B,那么可以说类A 依赖类B。和关联关系不同,
无须在类A 中定义类B 类型的属性。
聚集(Aggregation )
聚集指的是整体与部分之间的关系,在UML 中用带实线的菱形箭头表示。
聚集关系还可以分为两种类型:
● 被聚集的子系统允许被拆卸和替换,这是普通聚集关系。
● 被聚集的子系统不允许被拆卸和替换,这种聚集称为强聚集关系,或
者组成关系。
注:强聚集(组成)可用带实线的实心菱形箭头表示。
泛化(Generalization )
泛化指的是类之间的继承关系,在UML 中用带实线的三角形箭头表示。
实现(Realization)
实现指的是类与接口之间的关系,在UML 中用带虚线的三角形箭头表示。
以下是GOF 设计模式中的描述:
箭头和三角表示子类关系。
虚箭头线表示一个类实例化另一个类的对象,箭头指向被实例化的对象
的类。
普通的箭头线表示相识(acquaintance 也叫关联或者引用),意味着一
个对象仅仅知道另一个对象。相识的对象可能请求彼此的操作,但他们不为对方
负责,它只标示了对象间较松散的耦合关系。
尾部带有菱形的箭头线表示聚合(aggregation ),意味着一个对象拥有
另一个对象或者对另一个对象负责。一般我们称一个对象包含另一个对象,
文档评论(0)