diff --git a/notes/pics/dp-template.png b/notes/pics/dp-template.png new file mode 100644 index 00000000..603c4f37 Binary files /dev/null and b/notes/pics/dp-template.png differ diff --git a/notes/设计模式 - 模板方法.md b/notes/设计模式 - 模板方法.md index 3bfd0fdd..b1c8e3b9 100644 --- a/notes/设计模式 - 模板方法.md +++ b/notes/设计模式 - 模板方法.md @@ -1,17 +1,14 @@ ## 模板方法(Template Method) -### Intent - +### 意图 定义算法框架,并将一些步骤的实现延迟到子类。 通过模板方法,子类可以重新定义算法的某些步骤,而不用改变算法的结构。 -### Class Diagram - -

- -### Implementation +### 类图 +

+### 实现 冲咖啡和冲茶都有类似的流程,但是某些步骤会有点不一样,要求复用那些相同步骤的代码。

@@ -80,7 +77,7 @@ public class Client { } ``` -```html +```text boilWater Coffee.brew pourInCup @@ -92,9 +89,13 @@ pourInCup Tea.addCondiments ``` -### JDK - +### JDK 中的应用 - java.util.Collections#sort() - java.io.InputStream#skip() - java.io.InputStream#read() - java.util.AbstractList#indexOf() + +## 参考资料 + +- 弗里曼. Head First 设计模式 [M]. 中国电力出版社, 2007. +- Gamma E. 设计模式: 可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.