diff --git a/notes/设计模式 - 适配器.md b/notes/设计模式 - 适配器.md index 9ab96a86..df1d4877 100644 --- a/notes/设计模式 - 适配器.md +++ b/notes/设计模式 - 适配器.md @@ -59,7 +59,15 @@ public class Client { } ``` +```text +gobble! +``` + +适配器和[装饰](设计模式%20-%20装饰.md)都包装另一个对象,区别在于接口:适配器把被包装对象的接口转换成客户端需要的另一个接口(gobble() 变成 quack()),装饰保持接口不变,只叠加功能。 + ### JDK 中的应用 +Java I/O 中,InputStreamReader 是适配器:它是一个 Reader,内部的解码器从 InputStream 读出字节并解码成字符,让字节流可以当作字符流使用。 + - [java.util.Arrays#asList()](http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#asList%28T...%29) - [java.util.Collections#list()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#list-java.util.Enumeration-) - [java.util.Collections#enumeration()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#enumeration-java.util.Collection-) @@ -67,4 +75,4 @@ public class Client { ## 参考资料 - 弗里曼. Head First 设计模式 [M]. 中国电力出版社, 2007. -- Gamma E. 设计模式: 可复用面向对象软件的基础 [M]. 机械工业出版社, 2007. +- Gamma E. 设计模式:可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.