您的位置:首页 > 其它

设计模式之---装饰模式

2015-12-01 15:19 405 查看
装饰模式:就是扩展一个类的功能,在原来类的基础上增加一个修饰类,增强原来来的功能。

例子:java中的流,就是使用装饰模式,不断增加新的读取的方法。



package decorator;

import java.io.File;

public abstract class InputStream {

public abstract void readByte(File file);

}

package decorator;

import java.io.File;

public class InputStreamReader extends InputStream{

public void readByte(File file) {

System.out.println(this.getClass().getName());

System.out.println("我是InputStreamReader");

}

}

package decorator;

import java.io.File;

public abstract class Decorator extends InputStream{

private InputStream inputStream;

public Decorator(InputStream inputStream) {

this.inputStream = inputStream;

}

//原来的方法

public void readByte(File file){

inputStream.readByte(file);

}

}

package decorator;

import java.io.File;

public class BufferedReader extends Decorator{

public BufferedReader(InputStream inputStream) {

super(inputStream);

}

public void readByte(File file) {

super.readByte(file);

}

public void readString(File file) {

System.out.println("调用已有的方法");

this.readByte(file);

System.out.println("我每次读取一行");

}

}

package decorator;

import java.io.File;

public class FileClient {

public static void main(String[] args){

BufferedReader inputStream=new BufferedReader(new InputStreamReader());

inputStream.readString(new File(""));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: