java设计模式精讲 第2章 UML急速入门

2-1本章导航

在第二章将会学习UML的知识,包括UML的定义,特点,分类等等,通过学习相关的知识我们对于UML有个更进一步的认识,对于我们了解和分析需求,以及后期的开发都会有非常大的帮助。

java设计模式精讲 第2章 UML急速入门

UML的定义

java设计模式精讲 第2章 UML急速入门

UML的特点

java设计模式精讲 第2章 UML急速入门

UML2.2的分类

java设计模式精讲 第2章 UML急速入门

  • 结构式图形

java设计模式精讲 第2章 UML急速入门

  • 行为式图形
    java设计模式精讲 第2章 UML急速入门

  • 交互式图形
    java设计模式精讲 第2章 UML急速入门

UML类图

java设计模式精讲 第2章 UML急速入门

记忆技巧

java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门

java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门
java设计模式精讲 第2章 UML急速入门

UML时序图

java设计模式精讲 第2章 UML急速入门

java设计模式精讲 第2章 UML急速入门

2-2UML类图讲解

java设计模式精讲 第2章 UML急速入门

  1. 如果出抽象类,类名是用斜体来表示
  2. "+“表示public”+"表示public
  3. "-“表示private”-"表示private
  4. "#“表示protected”#"表示protected
  5. "~"或者什么都不加就表示default的包权限或者什么都不加就表示default的包权限
  6. 有下划线" _ "表示static的属性或者是方法
  7. 斜体的表示的是抽象方法,既然这个类里面含有抽象方法,那么这个类也必然是一个抽象类斜体的表示的是抽象方法,既然这个类里面含有抽象方法,那么这个类也必然是一个抽象类,所以上图有个错误,GeelyClass这个抽象类应该是用斜体表示。

2-3 详细案例讲解

java设计模式精讲 第2章 UML急速入门

我们自上而下来看这个类图

依赖关系:

一般是作为一个方法的入参

java设计模式精讲 第2章 UML急速入门

  • 在这个图中表现的是一个依赖关系.依赖关系:一般是作为一个方法的入参,或者是返回值,,在动物这个类中有一个public的新陈代谢方法,此方法有两个参数,氧气和水,那么氧气和水相对于动物来说就是依赖关系

继承的关系

这里要注意的是:箭头的指向,是从子类指向父类

java设计模式精讲 第2章 UML急速入门

在继承的关系中,箭头的方向是由子类指向父类,在图中表示 鸟是动物的子类,所以箭头由鸟指向动物,也可以说 鸟 is a 动物

这也是继承关系:
java设计模式精讲 第2章 UML急速入门

组合关系

组合关系的两个类是具有相同的生命周期的;

java设计模式精讲 第2章 UML急速入门

关联关系

组合关系通常是在一个类中把另一个类作为属性

java设计模式精讲 第2章 UML急速入门

聚合关系

这里要注意菱形和箭头的方向不要指反了,菱形是多的一方
可以把这个菱形理解一个可以乘东西的盘子,盘子可以放很多的东西,指向多的一方

java设计模式精讲 第2章 UML急速入门

  • 对比一下上面的组合关系,组合关系是一种强的“拥有”关系体现了严格的部分和整体的关系部分和整体的什么周期一致。上面的鸟和翅膀的关系就是一种组合关系,鸟和翅膀是一个整体,具有相同的生命周期,通俗来讲,鸟挂了,当然翅膀也挂了。
  • 聚合关系是整体和个体的关系。聚合关系的两个类处于不同的层次一个是整体,一个是部分。同时也是一种弱的“拥有”关系。上图中的大雁群和大雁就是聚合关系,由很多大雁组成一个大雁群,每只大雁都有独自的生命周期,一只大雁挂了,这个大雁群依旧存在。

实现接口

java设计模式精讲 第2章 UML急速入门

实现接口2 - 棒棒糖表示法

唐老鸭实现了说人话的接口

java设计模式精讲 第2章 UML急速入门

2-4 UML类图讲解-对比讲解联想记忆

java设计模式精讲 第2章 UML急速入门

  • 虚线箭头 ------>依赖关系 做为方法的参数
  • 实线箭头-------->关联关系 类的属性

java设计模式精讲 第2章 UML急速入门

  • 组合关系 —>实心菱形 整体和局部的关系,比聚合的关系更强烈,具有相同的生命周期,contains -a 的关系
  • 聚合关系 ---->空心菱形 整体和局部的关系,独立的生命周期,has -a 的关系

java设计模式精讲 第2章 UML急速入门

  • 继承和实现:一个实线一个是虚线