mirror of
https://github.com/CyC2018/Interview-Notebook.git
synced 2026-11-01 03:23:42 +00:00
Update 设计模式 - 适配器.md
补充适配器与装饰模式的区别说明,在 JDK 应用小节中补充 InputStreamReader 示例,并进行参考文献条目的文字校对。
This commit is contained in:
+9
-1
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user