Java IO(九)FilterInputStream 和 FilterOutputStream
2021-01-15 22:12
标签:其他 red 装饰者模式 添加 java io ali 父类 耦合性 构造 FilterInputStream 和 FilterOutputStream 是过滤字节输入流和过滤字节输出流。它们的作用是封装其他的基础流,并为它们提供额外的功能。它们的子类分别有: 装饰者模式,就是将原有的基础流进行"装饰",那么装饰后的方法要与原先被装饰的基础类要保持一致,也可以在对基础流进行扩展。而继承是继承父类的属性和方法,通过重写父类里面的方法也可以起到"装饰"作用,比如强化或者优化父类里面的一些方法。 两者的区别是装饰者模式可以动态地扩展一个对象,给对象添加额外的功能,而且装饰者和被装饰者之间不会产生耦合。 如果采用继承的方式,要实现 BufferedInputStream 的功能,我们就必须继承大部分的字节输入流,Java IO中还有其他的如 DataInputStream 等,如果都使用继承方式,那么Java IO 体系会变得很臃肿,而且类与类之间的耦合度特别高。 通过上面的继承方式,通过装饰者模式可以解决继承带来的问题。 装饰者模式相比继承,没有这么多繁杂的类,而且类与类的之间的耦合性降低,具体做法就是将类 FilterInputStream 提取为一个父类,而其子类就是各个功能的实现类。如果想要基础输入流要某个功能,那么就可以将对应的基础输入流传到对应的子类构造方法中。 Java IO(九)FilterInputStream 和 FilterOutputStream 标签:其他 red 装饰者模式 添加 java io ali 父类 耦合性 构造 原文地址:https://www.cnblogs.com/lingq/p/12924632.htmlJava IO(九)FilterInputStream 和 FilterOutputStream
一、介绍
二、装饰者模式和继承
(一)、实现 BufferedInputStream 的功能,采用继承的方式。
(二)、实现 BufferedInputStream 的功能,采用装饰者模式。
下一篇:java中原型模式详解和使用方法
文章标题:Java IO(九)FilterInputStream 和 FilterOutputStream
文章链接:http://soscw.com/index.php/essay/42426.html