设计模式:装饰模式
来源:互联网 发布:2017公安部网络严打 编辑:程序博客网 时间:2024/06/09 05:42
/*自己写的读取行*/import java.io.*;/*装饰设计模式:当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入。基于已有的功能,并提供加强功能。那么定义的该类称为装饰类。如下面的:MyBufferedReader 对 FileReader 类的 read 方法进行了功能加强。装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。 */class MyBufferedReader{private FileReader r;MyBufferedReader(FileReader r){thir.r = r;}//一次读一行数据public String getLine(FileReader fr)throws IOException{//定义一个临时的容器,原bufferedReader封装的是字符数组//为了演示方便,定义一个StringBuilder容器,因为最终还是要将数据变成字符串。StringBuilder sb = new StringBuilder();int ch = 0;while((ch = r.read()) != -1){//读到 \r 并且下个是 \n 时才返回。 这样如果只是读到 \r 就忽略是不是会有误差if(ch =='\r') //读到 \r 时呼略过continue;if(ch == '\n') //return sb.toString();elsesb.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("buf.txt");MyBufferedReader mybuf = new MyBufferedReader(fr);String line = null;while((line = mybuf.myReadLine()) !=null){System.out.println(line);}mybuf.myClose();}}
0 0
- 设计模式---装饰模式
- 设计模式:装饰模式
- 设计模式------装饰模式
- 设计模式--装饰模式
- 设计模式--装饰模式
- 设计模式--装饰模式
- 设计模式 装饰模式
- 设计模式----装饰模式
- 设计模式-【装饰模式】
- 设计模式--装饰模式
- 设计模式装饰模式
- 设计模式 - 装饰模式
- 设计模式-----装饰模式.
- 设计模式-----装饰模式.
- [ 设计模式 ] 装饰模式!
- 设计模式:装饰模式
- 设计模式 - 装饰模式
- 设计模式 - 装饰模式
- iOS 简单易懂的 Block 回调使用和解析
- 令人拍案叫绝的Wasserstein GAN
- 详解swift和OC以及C语言的混编
- HDFS小坑
- android-ViewPager的轮播效果
- 设计模式:装饰模式
- python-网络爬虫初学三:网络异常的捕获
- 评价一个软件项目的 管理角度
- C#学习之Queue分析
- apache服务器: ServerRoot must be a valid directory,Cannot load modules/mod_actions.so into server:
- Error:Execution failed for task ':app:clean'. > Unable to delete directory
- python any
- 欢迎使用CSDN-markdown编辑器
- ViewPager 详解(一)---基本入门