3. UML
- UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助开发人员进行思考和记录思路的结果。
- UML本身是一套符号的规定,就像数学与化学符号,这些符号用来表示各个元素之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。
- UML可以画时序图、用例图、类图。
3.1 UML类图
- 用于描述系统中的类(对象)本身的组成和类(对象)之间各种静态关系。
- 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。
3.2 类图—依赖关系
- 只要在类中用到对方,那么他们之间就存在依赖关系,如果没有对方,连编译都通过不了。
类中用到对方的地方:
- 类的成员属性
- 方法的返回类型
- 方法接收的参数类型
- 方法中使用到
依赖使用虚线箭头,箭头指向依赖者
3.3 类图—泛化关系
- 泛化关系实际上就是继承关系,他是依赖关系的特列。
- 泛化就是继承关系。
- 如果A继承了B,我们就说A和B存在泛化关系。
泛化使用实线空心箭头,箭头指向继承类
3.4 类图—实现关系
- 实现关系就是A类(实现类)实现了B类(接口),他就是依赖关系的特例。
实现关系使用虚线空心箭头,接口指向接口
3.5 类图—关联关系
- 关联关系实际上就是类与类之间的联系,他就是依赖关系的特例。
- 关联具有导航性:即双向关联或单项关联
- 关联具有多重性:一对多,一对一,多对一,多对多。
关联使用实线箭头(单向关联)或者实线没有箭头(双向关联),箭头指向被调用者
可以通过上图看出,Person类中使用了IDCard类,但是IDCard类中没有使用到Person类,此时是单项一对一,并且存在箭头,这个箭头指向被调用的类。
而在第二个中,他们之间的类互相调用,所以此时是双向一对一关系,此时不存在箭头。
3.6 类图—聚合关系
- 聚合关系表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所有它具有关联的导航性和多重性。
例如:一台计算机的键盘和显示器是可以从计算机中拆分出来的,使用带空心菱形的实线表示。(空心菱形从部分指向整体)
聚合使用空心的菱形箭头,箭头指向调用者
3.7 类图—组合关系
- 组合也是整体与部分的关系,但是整体与部分不可以分开。(比如人与脑袋,就是组合关系)
- 如果类中的成员变量不可以与整体类分离,就称为组合。比如上边的鼠标类如果不能与计算机分离,那么就是组合关系。(此时是new的对象,当Computer类加载时,鼠标类也会加载,当计算机类消失的时候,鼠标类也会随之消失,此时存在组合关系)
- 组合使用的是实体的菱形箭头表示,箭头指向调用者。
区分组合与聚合:
- 人的身体与人不可以拆分的,所以此时就是组合关系。
- 人的身份证与人是可以拆分的,此时是聚合关系。
网络异常,图片无法展示
|