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