简单模拟BufferedRead包装流

文章通过示例展示了Java中修饰器模式的应用,包装流(BufferedReader)不直接与原数据相连,提升处理效率。它提供了便捷的方法处理批量数据,如BufferedReader对FileReader和StringReader的封装,支持多次读取和灵活操作。
摘要由CSDN通过智能技术生成

包装流使用了修饰器模式,不会与原数据直接相连,提高了处理效率。同时他也提供了一系列便捷 的方法来处理一次输入大批量的数据。下面的代码就是简单模拟一下包装流,便于大家理解修饰器模式。

package read_;

public class Test {
    public static void main(String[] args) {
       BufferedReader_ bufferedReader = new BufferedReader_(new FileReader_());
       bufferedReader.readFile(3);
       BufferedReader_ bufferedReader1 = new BufferedReader_(new StringReader_());
       bufferedReader1.readString(3);


    }
}

//模拟处理流
public class StringReader_ extends read_{
    @Override
    public void readString() {
        System.out.println("处理字符串流");
    }
}


//模拟节点流
public class FileReader_ extends read_{
    @Override
    public void readFile() {
        System.out.println("处理文件流");
    }
}


//模拟包装流(处理流)
public class BufferedReader_ extends read_{
    private read_ read_;
    public BufferedReader_(read_ read_) {
        this.read_ = read_;
    }

    @Override
    public void readFile() {//做一层封装
        read_.readFile();
    }

    //让方法更加灵活,多次读取文件,也可以增加缓存
    public void readFile(int num){
        for (int i = 0; i <num ; i++) {
            read_.readFile();
        }
    }

    @Override
    public void readString() {
        read_.readString();
    }
    public void readString(int num ){
        for (int i = 0; i <num ; i++) {
            read_.readString();
        }
    }

}

 
public abstract class read_ {//抽象类
   public void readFile(){}
    public void readString(){}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值