JDK源码阅读-3-设计模式-结构型模式

1.适配器(Adapter)

10年积累的成都网站建设、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有永兴免费网站建设让你可以放心的选择与我们合作。

  • java.util.Arrays$ArrayList(java.util.Arrays#asList());

 这里要特别注意,这里的ArrayList是Arrays的内部类不是java.util.ArrayList.这里的ArrayList是外部不可见的,用来把一个array适配成List.

 JDK 源码 阅读 - 3 - 设计模式 - 结构型模式

Sample:

String a[] = new String[]{"123","abc","xyz","ddd"};   
List list = Arrays.asList(a);

  • java.io.InputStreamReader(InputStream)

 InputStream --> Reader

JDK 源码 阅读 - 3 - 设计模式 - 结构型模式

 

  • java.io.OutputStreamWriter(OutputStream) (returns a Writer)

    参见上两个

2.组合模式(Composite)

  • java.awt.Container#add(Component) 

 JDK 源码 阅读 - 3 - 设计模式 - 结构型模式

3.装饰器(Decorator)

  • 所有 java.io.InputStreamOutputStreamReader 跟 Writer 的子类有一个构造函数接受同类型的实例,下面用一个例子来图示.

JDK 源码 阅读 - 3 - 设计模式 - 结构型模式

  • 还参见java.util.Collections, 的 checkedXXX()synchronizedXXX() ,unmodifiableXXX()方法.

4.外观模式(Facade)

  • JDBC中的IConnection等接口

5.享元模式(Flyweight)

  • java.lang.Integer#valueOf(int) (BooleanByteCharacterShortLong)

6.代理模式(Proxy)

  • java.lang.reflect.Proxy


新闻标题:JDK源码阅读-3-设计模式-结构型模式
标题来源:http://scyanting.com/article/jsgedg.html