装饰者模式实际应用
来源:互联网 发布:linux 安装中文字符集 编辑:程序博客网 时间:2024/06/05 17:55
Java IO类采用了装饰者模式:
利用装饰者模式会产生很多的小类。
InputStream
子类:FileInputStream StringBufferInputStream ByteArrayInputStream FilterInputStream
FilterInputStream子类:PushbackInputStream BufferedInputStream DataInputStream LineNumberInputStream
下面利用装饰者模式,写一个IO类自己的装饰者:
将输入流的大写字符全部转换小写字符。
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
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 int read(byte[] b,int offset,int len) throws IOException{ int result = super.read(b, offset, len); for(int i = offset; i < offset +result;i++){ b[i] = (byte)Character.toLowerCase((char)b[i]); } return result;}
}
测试运行类:
package com.gac.zsz;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class InputTest {
public static void main(String[] args){
int c;
try {
InputStream in = new LowerCaseInputStream(new BufferedInputStream(
new FileInputStream(“test.txt”)));
while((c = in.read())>=0){
System.out.println((char)c);
}
in.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 装饰者模式实际应用
- Java实际应用中经常遇到的"装饰模式"总结
- 设计模式--装饰(者)模式的实际开发实践
- 装饰者模式及其应用
- 装饰者模式的应用
- 装饰者模式及其应用
- java io 装饰者模式的应用
- Cocos2d-x中应用装饰者模式
- 装饰者模式的简单应用
- 装饰模式的应用
- 装饰模式的应用
- 设计模式的实际应用
- 代理模式之实际应用
- 设计模式的实际应用
- 《架构模式应用 ● 设计模式》之装饰者
- 设计模式实战应用之三:装饰者模式
- Java 装饰模式的应用
- 来杯咖啡-装饰者模式(Decorator)实例应用详解
- android studio碰到无法找到org.apache.http.legacy的解决办法
- ThreadPoolExecutor使用介绍
- Android 获取并显示远程图片 Picasso框架的使用
- 关于java编写简易版 控制台输出万年历
- 【HDU-1295】非常可乐(bfs)
- 装饰者模式实际应用
- HDOJ 2049-不容易系列之(4)——考新郎【错排】
- STM32之使用库函数驱动LED灯
- m的阶乘
- NYOJ5056_黑色帽子(水题)
- D2D画箭头的例子
- Android Fragment 真正的完全解析(上)
- 第2周.项目3:小试循环
- 第二周项目3 小试循环