diff --git a/notes/设计模式.md b/notes/设计模式.md
index cb865b9b..1d4c2a26 100644
--- a/notes/设计模式.md
+++ b/notes/设计模式.md
@@ -266,7 +266,7 @@ public class ConcreteFactory2 extends Factory {
## 类图
-
+
抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂模式只是用于创建一个对象,这和抽象工厂模式有很大不同。
diff --git a/notes/面向对象思想.md b/notes/面向对象思想.md
index e7022981..6ff533b3 100644
--- a/notes/面向对象思想.md
+++ b/notes/面向对象思想.md
@@ -6,9 +6,13 @@
* [封装](#封装)
* [继承](#继承)
* [多态](#多态)
-* [三、UML](#三uml)
- * [类图](#类图)
- * [时序图](#时序图)
+* [三、类图](#三类图)
+ * [泛化关系 (Generalization)](#泛化关系-generalization)
+ * [实现关系 (Realization)](#实现关系-realization)
+ * [聚合关系 (Aggregation)](#聚合关系-aggregation)
+ * [组合关系 (Composition)](#组合关系-composition)
+ * [关联关系 (Association)](#关联关系-association)
+ * [依赖关系 (Dependency)](#依赖关系-dependency)
* [参考资料](#参考资料)
@@ -196,147 +200,47 @@ public class Music {
}
```
-# 三、UML
+# 三、类图
-## 类图
+## 泛化关系 (Generalization)
-### 1. 继承相关
+用来描述继承关系,在 Java 中使用 extends 关键字。
-继承有两种形式 : 泛化(Generalize)和实现(Realize),表现为 IS-A 关系。
+
-#### 泛化关系 (Generalize)
+## 实现关系 (Realization)
-从具体类中继承。
+用来实现一个接口,在 Java 中使用 implement 关键字。
-
+
-#### 实现关系 (Realize)
+## 聚合关系 (Aggregation)
-从抽象类或者接口中继承。
+表示整体由部分组成,但是整体和部分不是强依赖的,整体不存在了部分还是会存在。
-
+
-### 2. 整体和部分
-
-#### 聚合关系 (Aggregation)
-
-表示整体由部分组成,但是整体和部分不是强依赖的,整体不存在了部分还是会存在。以下表示 B 由 A 组成:
-
-
-
-#### 组合关系 (Composition)
+## 组合关系 (Composition)
和聚合不同,组合中整体和部分是强依赖的,整体不存在了部分也不存在了。比如公司和部门,公司没了部门就不存在了。但是公司和员工就属于聚合关系了,因为公司没了员工还在。
-
+
-### 3. 相互联系
-
-#### 关联关系 (Association)
+## 关联关系 (Association)
表示不同类对象之间有关联,这是一种静态关系,与运行过程的状态无关,在最开始就可以确定。因此也可以用 1 对 1、多对 1、多对多这种关联关系来表示。比如学生和学校就是一种关联关系,一个学校可以有很多学生,但是一个学生只属于一个学校,因此这是一种多对一的关系,在运行开始之前就可以确定。
-
+
-#### 依赖关系 (Dependency)
+## 依赖关系 (Dependency)
-和关联关系不同的是,依赖关系是在运行过程中起作用的。依赖通常作为类的构造器或者方法的参数传入。双向依赖是一种不好的设计。
+和关联关系不同的是,依赖关系是在运行过程中起作用的。A 类和 B 类是依赖关系主要有三种形式:
-
+1. A 类是 B 类中的(某中方法的)局部变量;
+2. A 类是 B 类方法当中的一个参数;
+3. A 类向 B 类发送消息,从而影响 B 类发生变化;
-## 时序图
-
-### 1. 定义
-
-时序图描述了对象之间传递消息的时间顺序,它用来表示用例的行为顺序。它的主要作用是通过对象间的交互来描述用例(注意是对象),从而寻找类的操作。
-
-### 2. 赤壁之战时序图
-
-从虚线从上往下表示时间的推进。
-
-
-
-可见,通过时序图可以知道每个类具有以下操作:
-
-```java
-publc class 刘备 {
- public void 应战 ();
-}
-
-publc class 孔明 {
- public void 拟定策略 ();
- public void 联合孙权 ();
- private void 借东风火攻 ();
-}
-
-public class 关羽 {
- public void 防守荊州 ();
-}
-
-public class 张飞 {
- public void 防守荆州前线 ();
-}
-
-public class 孙权 {
- public void 领兵相助 ();
-}
-```
-
-### 3. 活动图、时序图之间的关系
-
-活动图示从用户的角度来描述用例;
-
-时序图是从计算机的角度(对象间的交互)描述用例。
-
-### 4. 类图与时序图的关系
-
-类图描述系统的静态结构,时序图描述系统的动态行为。
-
-### 5. 时序图的组成
-
-#### 对象
-
-有三种表现形式
-
-
-
-在画图时,应该遵循以下原则:
-
-1. 把交互频繁的对象尽可能地靠拢。
-
-2. 把初始化整个交互活动的对象(有时是一个参与者)放置在最左边。
-
-#### 生命线
-
-生命线从对象的创建开始到对象销毁时终止
-
-
-
-#### 消息
-
-对象之间的交互式通过发送消息来实现的。
-
-消息有 4 种类型:
-
-1\. 简单消息,不区分同步异步。
-
-
-
-2\. 同步消息,发送消息之后需要暂停活动来等待回应。
-
-
-
-3\. 异步消息,发送消息之后不需要等待。
-
-
-
-4\. 返回消息,可选。
-
-#### 激活
-
-生命线上的方框表示激活状态,其它时间处于休眠状态。
-
-
+
# 参考资料
diff --git a/pics/0acc722a-de55-4539-82ab-446238c8a242.png b/pics/0acc722a-de55-4539-82ab-446238c8a242.png
new file mode 100644
index 00000000..26cedd10
Binary files /dev/null and b/pics/0acc722a-de55-4539-82ab-446238c8a242.png differ
diff --git a/pics/0e34263d-7287-4ffe-a716-37c53d1a2526.png b/pics/0e34263d-7287-4ffe-a716-37c53d1a2526.png
new file mode 100644
index 00000000..c5f0bbe3
Binary files /dev/null and b/pics/0e34263d-7287-4ffe-a716-37c53d1a2526.png differ
diff --git a/pics/2017511e-22f0-4d74-873d-1261b71cf5a4.png b/pics/2017511e-22f0-4d74-873d-1261b71cf5a4.png
new file mode 100644
index 00000000..81633b51
Binary files /dev/null and b/pics/2017511e-22f0-4d74-873d-1261b71cf5a4.png differ
diff --git a/pics/27cd6f0c-f581-45da-b8c9-fed026830560.png b/pics/27cd6f0c-f581-45da-b8c9-fed026830560.png
new file mode 100644
index 00000000..40775ac8
Binary files /dev/null and b/pics/27cd6f0c-f581-45da-b8c9-fed026830560.png differ
diff --git a/pics/aa42f9c6-ad7a-48f4-8e8b-f3b6de3feaec.png b/pics/aa42f9c6-ad7a-48f4-8e8b-f3b6de3feaec.png
new file mode 100644
index 00000000..cdb78c11
Binary files /dev/null and b/pics/aa42f9c6-ad7a-48f4-8e8b-f3b6de3feaec.png differ
diff --git a/pics/b418ca51-f005-4510-b7ad-f092eb6aeb24.png b/pics/b418ca51-f005-4510-b7ad-f092eb6aeb24.png
new file mode 100644
index 00000000..07157513
Binary files /dev/null and b/pics/b418ca51-f005-4510-b7ad-f092eb6aeb24.png differ
diff --git a/pics/c7d4956c-9988-4a10-a704-28fdae7f3d28.png b/pics/c7d4956c-9988-4a10-a704-28fdae7f3d28.png
new file mode 100644
index 00000000..56510359
Binary files /dev/null and b/pics/c7d4956c-9988-4a10-a704-28fdae7f3d28.png differ