Java装饰者模式
2016-12-28 23:03
288 查看
package com.zyf.day21.other; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; //BufferedReader是不是拓展了FileReader的功能 //BufferedWriter也是拓展了FileWriter的功能 //需求1:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有行号 //需求2:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有分号 //需求3:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有双引号 //需求4:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 行号 +分号 //需求5:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 分号 +双引号 //需求6:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 行号 + 双引号 //需求7:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 行号 + 分号 + 双引号 class BufferedLineNum2 extends BufferedReader{ //在内部维护一个被装饰类的引用 BufferedReader bufferedReader; int count = 1; public BufferedLineNum2(BufferedReader bufferedReader){ super(bufferedReader);//注意:该语句没有任何作用,只不过是为了让代码不报错。 this.bufferedReader = bufferedReader; } public String readLine() throws IOException{ String line = bufferedReader.readLine(); if(line == null){ return null; } line = count + " " + line; count++; return line; } } //带分号的缓冲输入字符流 class BufferedSemi2 extends BufferedReader{ //在内部维护一个被装饰类的引用 BufferedReader bufferedReader; public BufferedSemi2(BufferedReader bufferedReader){ super(bufferedReader); this.bufferedReader = bufferedReader; } public String readLine() throws IOException{ String line = bufferedReader.readLine(); if(line == null){ return null; } line = line + ";"; return line; } } public class demo2 { public static void main(String[] args) throws IOException { File file = new File("c:\\a.txt"); FileReader fileReader = new FileReader(file); //建立缓冲输入字符流 BufferedReader bufferedReader = new BufferedReader(fileReader); BufferedLineNum2 bufferedLineNum = new BufferedLineNum2(bufferedReader); //带分号 的缓冲输入字符流 BufferedSemi2 bufferedSemi2 = new BufferedSemi2(bufferedLineNum); String line = null; while((line = bufferedSemi2.readLine())!=null){ System.out.println(line); } } }
相关文章推荐
- Java 装饰者设计模式
- Java 装饰者模式例程
- java设计模式---装饰者模式(简单笔记)
- java I/O之装饰者模式
- java I/O之装饰者模式
- 装饰者模式 java代码小示例
- java io 装饰者模式的应用
- Java 代理模式和装饰者模式的区别
- Java设计模式之装饰者模式
- java的装饰者模式
- 装饰者模式【java版】
- java设计模式之装饰者模式
- 谈java中装饰者模式与继承的区别
- java设计模式---装饰者模式(简单笔记)
- java 装饰者模式
- 装饰者模式【java版】
- Head First Java 设计模式——装饰者模式
- 设计模式之三:装饰者模式(java内置)
- Java设计模式之装饰者模式
- java IO以及对应的装饰者模式