java模式设计之装饰器模式
2017-08-04 22:55
387 查看
装饰器模式:
使用分层对象来动态透明的向单个对象中添加责任(功能)。装饰器指定包装在最初的对象周围的所有对象都具有相同的基本接口。
某些对象是可装饰的,可以通过将其他类包装在这个可装饰对象的四周,来将功能分层。
装饰器必须具有和他所装饰的对象相同的接口。
JavaIO中的应用:
Java I/O类库需要多种不同的功能组合,所以使用了装饰器模式。
FilterXxx类是JavaIO提供的装饰器基类,即我们要想实现一个新的装饰器,就要继承这些类。
package file;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
//装饰者模式
class Mylinebufferreader extends BufferedReader{
private BufferedReader bufferedreader;
int count = 0;
public Mylinebufferreader(BufferedReader bufferedreader ) {
super(bufferedreader);
this.bufferedreader = bufferedreader;
// TODO Auto-generated constructor stub
}
public String readLine() throws IOException{
String line = bufferedreader.readLine();
if(line!= null){
count++;
return count+" "+line;
}else{
return null;
}
}
}
class MyQutoBufferedReader extends BufferedReader{
private BufferedReader bufferedreader;
public MyQutoBufferedReader(BufferedReader bufferedreader) {
super(bufferedreader);
this.bufferedreader = bufferedreader;
// TODO Auto-generated constructor stub
}
public String readLine() throws IOException{
String line = bufferedreader.readLine();
if (line != null) {
return line+";";
} else {
return null;
}
}
}
public class Demo08 {
public static void main(String[] args) throws IOException {
myread();
}
public static void myread() throws IOException{
Reader reader = new FileReader("D://demo.java");
BufferedReader bufferedreader = new BufferedReader(reader);
BufferedReader br = new Mylinebufferreader(bufferedreader);
br= new MyQutoBufferedReader(br);
String line = null;
while((line = br.readLine())!=null){
System.out.println(line);
}
}
}
相关文章推荐
- Java基础之IO流,装饰设计模式的应用之行号、缓冲读取文本文件
- java设计模式之装饰模式代理模式区别
- java设计模式之装饰模式
- java 中设计模式(装饰设计模式)的实例详解
- java设计模式之装饰模式
- Java 设计模式之装饰模式的详解(结构模式)
- JAVA的23种设计模式---装饰模式
- Java语言实现的装饰设计模式复习
- Java设计模式笔记(8)装饰模式
- Java设计模式之装饰模式(Decorator模式)介绍
- Java设计模式之装饰模式
- JAVA设计模式之装饰模式
- Java设计模式(三)装饰模式详解
- Java 设计模式 --装饰模式
- Java设计模式之装饰设计模式(2)
- Java设计模式之六:装饰模式
- java设计模式之装饰模式(在i/o流中的应用)
- Java设计模式---装饰模式(Decorator)
- Java设计模式之装饰器模式
- Java进阶篇设计模式之五-----外观模式和装饰器模式