1. 什么是 UML
统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统图形化、能表达软件设计中的动态与静态信息。L从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图部署图等9种图。
2. 类图
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。
2.1 类图的作用
- 显示模型的静态结构
- 描述系统里类的集合,类的属性和类之间的关系
- 简化了人们对系统的理解
- 类图是系统分析和设计阶段的重要产物
- 是系统编码和测试的重要模型
2.2 类的表示方式
可见性
- +:表示public
- -:表示private
- #:表示protected
属性: 可见性 名称:类型 [=缺省值]
或者:-String name
( 不标准)
方法:可见性 名称(参数列表) [:返回类型]
或者:+void work()
(不标准)
2.3 类与类之间的关系
2.3.1 关联关系(引用)
2.3.1.1 单项关联(实线实心箭头,指向被引用)
2.3.1.2 双向关联(实直线)
双方各自持有对方类型的成员变量。
2.3.1.3 自关联(实线实心箭头,指向自身)
自己包含自己。一般二叉树、链表中会用到。
2.3.2 聚合关系(空心菱形,指向整体)
聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系。
聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。
例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。
2.3.2 组合关系(实心菱形,指向整体)
组合表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系。
在组合关系中,整体对象可以控制部分对象的生命周期,一且整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。
例如,头和嘴的关系,没有了头,嘴也就不存在了。
2.3.3 依赖关系(虚线箭头,指向被使用)
依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。
在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。
例如司机和汽车,司机驾驶汽车。
2.3.4 继承(泛化)关系(空心三角箭头,指向父类)
继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系。
例如,Student类和Teacher类都是Person类的子类。
2.3.4 实现关系(虚线空心箭头,指向接口)
实现关系是接口与实现类之间的关系。
在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。
例如,汽车和船实现了交通工具。