JDK 源码 阅读 - 3 - 设计模式 - 结构型模式
1.适配器(Adapter)
java.util.Arrays$ArrayList
(java.util.Arrays#asList());
这里要特别注意,这里的ArrayList是Arrays的内部类不是java.util.ArrayList.这里的ArrayList是外部不可见的,用来把一个array适配成List.
Sample:
String a[] = new String[]{"123","abc","xyz","ddd"};
List list = Arrays.asList(a);
java.io.InputStreamReader(InputStream)
InputStream --> Reader
java.io.OutputStreamWriter(OutputStream)
(returns aWriter
)参见上两个
2.组合模式(Composite)
java.awt.Container#add(Component)
3.装饰器(Decorator)
所有
java.io.InputStream
,OutputStream
,Reader
跟Writer 的子类有一个构造函数接受同类型的实例,下面用一个例子来图示
.
还参见java.util.Collections
, 的checkedXXX()
,synchronizedXXX()
,unmodifiableXXX()方法
.
4.外观模式(Facade)
JDBC中的IConnection等接口
5.享元模式(Flyweight)
java.lang.Integer#valueOf(int)
(Boolean
,Byte
,Character
,Short,
Long
)
6.代理模式(Proxy)
java.lang.reflect.Proxy
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341