设计模式(三)装饰者模式之java.io
来源:互联网 发布:java中合法关键字 编辑:程序博客网 时间:2024/05/20 20:02
- 概述
java.io类库封装了操作系统底层的I/O细节,提供一套简单方便、功能丰富的I/O解决方案。但是包含了太多的小类,如果对java.io类库的设计思路不了解,可能会搞不懂java里面的I/O关系。上一节已经介绍了装饰者模式的工作原理,如果我们知道java.io类库是使用装饰者模式组织的,理解起来会简单一些,下面以输入流(其它流基本相似)为例介绍。 UML
说明:
1) InputStream是一个抽象组件。
2) FilterInputStream是一个抽象装饰者。
3) 其它继承自InputStream的类是可以被装饰者包装的具体组件。
4) 继承自FilterInputStream的类是具体的装饰者实现
使用java.io类库,编写一个输入流装饰者示例,实现把输入流内的所有大写字符转成小写。
/** * 装饰者类-新的输入流装饰者 */public class LowerCaseInputStream extends FilterInputStream { protected LowerCaseInputStream(InputStream in) { super(in); } public int read() throws IOException { int c = super.read(); return (c == -1 ? c : Character.toLowerCase((char) c)); }}
/** * 测试类-新的输入流装饰者 */public class IODecoratorTest { public static void main(String[] args) throws IOException { int c = 0; // test.txt的内容:LowerCaseInputStream InputStream in = new LowerCaseInputStream( new BufferedInputStream( new FileInputStream("D:\\temp\\test.txt"))); while ((c = in.read()) >= 0) { System.out.print((char) c); } in.close(); }}
运行结果:
参考资料:
《Head First设计模式》
0 0
- 设计模式(三)装饰者模式之java.io
- java.io.*中的设计模式之 装饰(Decorator)模式
- Java设计模式(三)之装饰设计模式
- JAVA IO之装饰器模式(Head first 设计模式之装饰器模式)
- java IO之装饰设计模式
- Java设计模式之三--装饰者模式
- 设计模式三之装饰者模式
- 设计模式三之装饰者模式
- 设计模式之装饰者模式 三
- Java设计模式:三、装饰者模式
- Java学习笔记之IO(十一):装饰者设计模式
- Java设计模式(三) 装饰模式
- java io 装饰设计模式
- 设计模式学习(三)之装饰者模式
- JAVA基础(五)IO(三)包含装饰者设计模式
- 浅析Java IO 设计模式之—装饰器模式
- Java设计模式(三)-装饰者模式
- 设计模式之装饰者(java)
- linux自旋锁——读写锁
- nginx.conf配置示例讲解
- java一些常用代码的分享
- unity3D EasyAR 识别模型抖动解决方案
- Install Hadoop on local machine
- 设计模式(三)装饰者模式之java.io
- 爬取豆瓣电影数据
- 继承
- 在ASP.NET中使用SQL Server作为数据库,DB First方式使用EF(EntityFramework)进行开发和部署时的connectionString
- javascript DOM节点、元素
- MySQL 多表关联更新及删除
- 4.6第七周
- Ubuntu Numix 图标安装
- POJ