diff --git a/notes/pics/dp-builder.png b/notes/pics/dp-builder.png new file mode 100644 index 00000000..1f8d9e48 Binary files /dev/null and b/notes/pics/dp-builder.png differ diff --git a/notes/设计模式 - 生成器.md b/notes/设计模式 - 生成器.md index 50a35062..1735782a 100644 --- a/notes/设计模式 - 生成器.md +++ b/notes/设计模式 - 生成器.md @@ -1,15 +1,12 @@ ## 5. 生成器(Builder) -### Intent - +### 意图 封装一个对象的构造过程,并允许按步骤构造。 -### Class Diagram - -

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

+### 实现 以下是一个简易的 StringBuilder 实现,参考了 JDK 1.8 源码。 ```java @@ -76,14 +73,18 @@ public class Client { } ``` -```html +```text abcdefghijklmnopqrstuvwxyz ``` -### JDK - +### JDK 中的应用 - [java.lang.StringBuilder](http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html) - [java.nio.ByteBuffer](http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#put-byte-) - [java.lang.StringBuffer](http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html#append-boolean-) - [java.lang.Appendable](http://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html) - [Apache Camel builders](https://github.com/apache/camel/tree/0e195428ee04531be27a0b659005e3aa8d159d23/camel-core/src/main/java/org/apache/camel/builder) + +## 参考资料 + +- 弗里曼. Head First 设计模式 [M]. 中国电力出版社, 2007. +- Gamma E. 设计模式: 可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.