diff --git a/notes/pics/dp-strategy.png b/notes/pics/dp-strategy.png
new file mode 100644
index 00000000..3a39f5ed
Binary files /dev/null and b/notes/pics/dp-strategy.png differ
diff --git a/notes/设计模式 - 策略.md b/notes/设计模式 - 策略.md
index d36824ea..b5d6ddee 100644
--- a/notes/设计模式 - 策略.md
+++ b/notes/设计模式 - 策略.md
@@ -1,17 +1,17 @@
## 9. 策略(Strategy)
-### Intent
-
+### 意图
定义一系列算法,封装每个算法,并使它们可以互换。
策略模式可以让算法独立于使用它的客户端。
-### Class Diagram
-
+### 类图
- Strategy 接口定义了一个算法族,它们都实现了 behavior() 方法。
- Context 是使用到该算法族的类,其中的 doSomething() 方法会调用 behavior(),setStrategy(Strategy) 方法可以动态地改变 strategy 对象,也就是说能动态地改变 Context 所使用的算法。
-
+下图按后文的鸭子示例画出:Duck 是 Context,QuackBehavior 是 Strategy,quack()、performQuack() 和 setQuackBehavior() 分别对应 behavior()、doSomething() 和 setStrategy()。
+
+
### 与状态模式的比较
@@ -19,8 +19,7 @@
状态模式主要是用来解决状态转移的问题,当状态发生转移了,那么 Context 对象就会改变它的行为;而策略模式主要是用来封装一组可以互相替代的算法族,并且可以根据需要动态地去替换 Context 使用的算法。
-### Implementation
-
+### 实现
设计一个鸭子,它可以动态地改变叫声。这里的算法族是鸭子的叫声行为。
```java
@@ -77,13 +76,17 @@ public class Client {
}
```
-```html
+```text
squeak!
quack!
```
-### JDK
-
+### JDK 中的应用
- java.util.Comparator#compare()
- javax.servlet.http.HttpServlet
- javax.servlet.Filter#doFilter()
+
+## 参考资料
+
+- 弗里曼. Head First 设计模式 [M]. 中国电力出版社, 2007.
+- Gamma E. 设计模式: 可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.