温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-25 21:26:15 来源:网络 阅读:423 作者:simon_wzing 栏目:关系型数据库

1.适配器(Adapter)

  • 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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI