java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
2-1本章导航
在第二章将会学习UML的知识,包括UML的定义,特点,分类等等,通过学习相关的知识我们对于UML有个更进一步的认识,对于我们了解和分析需求,以及后期的开发都会有非常大的帮助。
UML的定义
UML的特点
UML2.2的分类
- 结构式图形
-
行为式图形
-
交互式图形
UML类图
记忆技巧
UML时序图
2-2UML类图讲解
- 如果出抽象类,类名是用斜体来表示
- "+“表示public”+"表示public
- "-“表示private”-"表示private
- "#“表示protected”#"表示protected
- "~"或者什么都不加就表示default的包权限或者什么都不加就表示default的包权限
- 有下划线" _ "表示static的属性或者是方法
- 斜体的表示的是抽象方法,既然这个类里面含有抽象方法,那么这个类也必然是一个抽象类斜体的表示的是抽象方法,既然这个类里面含有抽象方法,那么这个类也必然是一个抽象类,所以上图有个错误,GeelyClass这个抽象类应该是用斜体表示。
2-3 详细案例讲解
我们自上而下来看这个类图
依赖关系:
一般是作为一个方法的入参
- 在这个图中表现的是一个依赖关系.依赖关系:一般是作为一个方法的入参,或者是返回值,,在动物这个类中有一个public的新陈代谢方法,此方法有两个参数,氧气和水,那么氧气和水相对于动物来说就是依赖关系
继承的关系
这里要注意的是:箭头的指向,是从子类指向父类
在继承的关系中,箭头的方向是由子类指向父类,在图中表示 鸟是动物的子类,所以箭头由鸟指向动物,也可以说 鸟 is a 动物。
这也是继承关系:
组合关系
组合关系的两个类是具有相同的生命周期的;
关联关系
组合关系通常是在一个类中把另一个类作为属性
聚合关系
这里要注意菱形和箭头的方向不要指反了,菱形是多的一方
可以把这个菱形理解一个可以乘东西的盘子,盘子可以放很多的东西,指向多的一方
- 对比一下上面的组合关系,组合关系是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的什么周期一致。上面的鸟和翅膀的关系就是一种组合关系,鸟和翅膀是一个整体,具有相同的生命周期,通俗来讲,鸟挂了,当然翅膀也挂了。
- 而聚合关系,是整体和个体的关系。聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时也是一种弱的“拥有”关系。上图中的大雁群和大雁就是聚合关系,由很多大雁组成一个大雁群,每只大雁都有独自的生命周期,一只大雁挂了,这个大雁群依旧存在。
实现接口
实现接口2 - 棒棒糖表示法
唐老鸭实现了说人话的接口
2-4 UML类图讲解-对比讲解联想记忆
- 虚线箭头 ------>依赖关系 做为方法的参数
- 实线箭头-------->关联关系 类的属性
- 组合关系 —>实心菱形 整体和局部的关系,比聚合的关系更强烈,具有相同的生命周期,contains -a 的关系
- 聚合关系 ---->空心菱形 整体和局部的关系,独立的生命周期,has -a 的关系
- 继承和实现:一个实线一个是虚线