From 5193d73b4ed0f3c2e95cc77218d5cb87096c3477 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:19:46 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=AE=BE=E8=AE=A1=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=20-=20=E9=80=82=E9=85=8D=E5=99=A8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充适配器与装饰模式的区别说明,在 JDK 应用小节中补充 InputStreamReader 示例,并进行参考文献条目的文字校对。 --- notes/设计模式 - 适配器.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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.