JAVA 装饰类(装饰设计模式)
2013-03-24 21:20
281 查看
//仅作为学习笔记
/* 装饰设计模式 当想要对已有的对象进行功能增强时 可以定义类 将已有的对象传入 基于已有的功能 并提供加强功能 那么自定义的该类称为装饰类 装饰类通常会通过构造方法接受装饰的对象 并基于被装饰的对象的功能 提供更强的功能 装饰设计模式与继承的区别 与装饰设计模式相比较 继承的类扩展性很差 装饰设计模式通过多态的形式,提高了扩展性。 装饰模式比继承要灵活 避免了继承体系的臃肿 而且降低了类与类之间的关系 装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能 所以装饰类和被装饰类通常都属于一个体系中 */ import java.io.*; class MyBufferedReader { private FileReader r; MyBufferedReader(FileReader r) { this.r = r; } //可以一次读取一行数据的方法 public String myReadLine() throws IOException { //定义一个临时容器 原BufferReader 封装的是字符数组 //为了演示方便 定义一个StringBuilder容器 因为最终还是要将数据变成字符串 StringBuilder sb = new StringBuilder(); int ch = 0; while( (ch = r.read())!= -1) { if(ch == '\r') continue; if(ch == '\n') return sb.toString(); else sb.append((char)ch); } if(sb.length()!= 0) return sb.toString(); return null; } public void myClose() throws IOException { r.close(); } } class MyBufferedReaderDemo { public static void main(String []args) throws IOException { FileReader fr = new FileReader("Test.java"); MyBufferedReader myBuf = new MyBufferedReader(fr); String line = null; while( (line = myBuf.myReadLine())!=null) { System.out.println(line); } myBuf.myClose(); } }
相关文章推荐
- JAVA设计模式-07-装饰模式
- java设计模式之装饰模式
- java设计模式(二)—— 装饰、门面、享元、原型、状态、策略
- Java设计模式之六:装饰模式
- Java经典设计模式-结构型模式-装饰模式(Decorator)
- JAVA 设计模式之装饰模式
- (三)Java设计模式--装饰器模式
- (三)Java设计模式--装饰器模式
- Java设计模式 - 装饰器模式
- Java设计模式之再从[暗黑破坏神"装备镶嵌宝石系统"]分析装饰(Decorator)模式
- Java 设计模式(20)--装饰模式
- 点滴:Java设计模式 装饰模式与适配器模式的的区别
- Java设计模式之装饰器模式
- Java——设计模式(装饰模式_IO)
- Java基础 - IO流之字符流,FileReader,FileWriter,BufferedReader,BufferedWriter,装饰设计模式,编码表
- java设计模式之装饰模式
- 【ThinkingInJava】42、装饰器设计模式
- java设计模式--装饰器模式
- Java设计模式之装饰器模式
- java设计模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,。 行为型模式,共十一种:策略模式、模板方法)