IO中的一种设计模式

来源:互联网 发布:windows启动过程图解 编辑:程序博客网 时间:2024/06/05 08:25

     我们一讲到设计模式这个概念的时候,会觉得这东西太深奥了,太难懂了,其实不然,很多都是我们的心理因素太多,我们自己自认为这个东西太难,自己先给自己加了一把锁。然后让别人进不来。

    好了,不多说。。。。

    IO中的设计模式:装饰设计模式

    什么叫装饰设计模式呢?------就是说我们将一些类封装起来,增强里面的功能。将一些功能进行封装并且加强他。

    那么什么时候使用这种设计模式呢?-----原先有一个功能,但是后来随着需求的增加,我们需要更强大的功能,并且在那个类的基础上增加一些新功能,这样的话,我们可以考虑继承和组合。

   那么什么叫组合呢?通俗的说就是将一些类组合在一起,彼此之间可以调用方法。   

package com.foreveross.io;

import java.io.FileReader;
import java.io.IOException;

class MyBufferedReader {
 private FileReader fileReader = null;
 MyBufferedReader(FileReader fileReader) {
  this.fileReader = fileReader;
 }
 
 public String myReadLine() throws IOException {//定义一个读一行的超类
  StringBuilder sb = new StringBuilder();
  int ch;
  while((ch = fileReader.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 {//定义一个关闭方法
  fileReader.close();
 }
}

public class TReadLine {
 
 private static MyBufferedReader myBufferedReader = null;

 public static void main(String[] args) {
  
  try {
      myBufferedReader = new MyBufferedReader(new FileReader("android.txt"));
      String len = null;
      while((len = myBufferedReader.myReadLine()) != null) {
       System.out.println(len);
      }
  }catch(IOException e) {
   System.out.println("read error!");
  }finally {
   try {
    if(myBufferedReader != null) {
          myBufferedReader.myclose();
    }
   }catch(IOException e) {
    System.out.println("流关闭失败!");
   }
  }

 }

}

  这个类里面就是一种很好的装饰设计模式的体现,我们对读取文件进行了很好的增强,使得我们的读取功能更加快速了。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果6s无法激活怎么办 苹果6sp激活出错怎么办 小米4c触屏失灵怎么办 手机谷歌浏览器为什么打不开怎么办 谷歌浏览器打不开网址怎么办 拼多多被限制了怎么办 保时捷11年的前机盖打不开怎么办 唯品会衣服质量有问题怎么办 唯品会买的东西有质量问题怎么办 唯品会上卖到假东西怎么办 个人资金链断了怎么办 腾讯财理通平台倒闭投资者该怎么办 ebay买到假货了怎么办 善心汇会员被限制出行怎么办 苹果手机屏碎了怎么办 三国志2017仓库满了怎么办 至尊宝密保手机被改了怎么办 电脑版qq游戏途中死机怎么办 登陆企业qq服务器超时怎么办 qq登录不上怎么办错误00001 苹果手机白屏进不了界面怎么办 苹果8p手机白屏怎么办 苹果5s无法关机怎么办 三星手机白屏了怎么办 电脑能上qq打不开网页怎么办? 电脑打不开机怎么办黑屏 英雄杀连接不上怎么办 炫舞时登陆器卸下载失败怎么办 电视为什么会出现登录超时怎么办 登录app时提示请求超时怎么办 手机来短信断网怎么办 百度网络不给力怎么办 网络连接不给力怎么办 抖音网络不给力怎么办 玩lol老是掉线怎么办 无线网络连接有防火墙怎么办啊 千牛重新获取enc-k怎么办 为什么说不能获取对方信息怎么办 qq炫舞客户端被修改怎么办 win7玩穿越卡顿怎么办 玩dnf就蓝屏怎么办win7