码迷,mamicode.com
首页 > 其他好文 > 详细

第三节:装饰者模式在JDK中的应用

时间:2021-01-25 11:36:43      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:div   string   new   stat   cep   lte   long   oid   tst   

装饰者模式在 JDK 应用的源码分析

 Java 的 IO 结构,FilterInputStream 就是一个装饰者:

技术图片

 

public abstract class InputStream implements Closeable{}  是一个抽象类,即Component

public class FilterInputStream extends InputStream {  //是一个装饰者类的 Decorator

  protected  volatile InputStream in //被装饰的对象}

class DataInputStream extends FilterInputStream implements DataInput {}  //FilterInputStream 的子类

 

  代码案例:

 1 public class Decorator {
 2     public static void main(String[] args) throws Exception {
 3 
 4         /**
 5          * 说明:
 6          *  1、InputStream 是抽象类,类似于前面的 Drink
 7          *  2、FileInputStream 是 InputStream 子类,类似于前面的 LongBlack
 8          *  3、FilterInputStream 是 InputStream 子类,类似于前面 Decorator 修饰者
 9          *  4、DataInputStream 是FilterInputStream 子类,具体的修饰者,类似前面 Milk
10          *  5、FilterInputStream 类有 protected volatile InputStream in; 即含被装饰者
11          *  6、分析得出 JDK 的 IO 体系中,就是使用了装饰者模式
12          */
13         DataInputStream dis = new DataInputStream(new FileInputStream("d:\\abc.txt"));
14         int read = dis.read();
15         System.out.println(read);
16         dis.close();
17     }
18 }

 

  

第三节:装饰者模式在JDK中的应用

标签:div   string   new   stat   cep   lte   long   oid   tst   

原文地址:https://www.cnblogs.com/niujifei/p/14319211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!