千家信息网

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

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,1.适配器(Adapter)java.util.Arrays$ArrayList(java.util.Arrays#asList());这里要特别注意,这里的ArrayList是Arrays的内部类不
千家信息网最后更新 2024年11月11日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 a Writer)

    参见上两个


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


0