IO流中的设计模式

JavaIO流设计到的设计策略和设计模式

Java的IO流库提供了一种链接(Chaining)机制,可以将一个流处理器跟另一个流处理器首位相连,以其中之一的输出作为另一个的输入而形成一个流管道链接。比如,常见的new DataInputStream(new FileInputStream(file))就是把FileInputStream流当作DataInputStream流的管道链接。

其次,对于Java IO流还涉及一种对称性的设计策略,其表现为输入输出对称性(如InputStream和OutputSteam的字节输入输出操作)和字节字符的对称性(InputStream和Reader的字节字符输入操作,OutputStream和Writer的字节字符输出操作)。

IO流涉及的装饰者设计模式:

FileInputStream inputStream=new FileInputStream(file);
//把inputStream装饰成BufferedReader来成为具备缓冲能力的reader
BufferedReader reader=new BufferedReader(inputStreamReader);

IO流涉及的适配器设计模式

FileInputStream fileInput=new FileInputStream(file);
//把fileInput文件字节流,通过适配器(InputStreamReader转换流)变为字符流
InputStreamReader input=new InputStreamReader(fileInput);

装饰者模式:给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例(各种字符流键装饰,各种字节流间装饰)。

适配器模式:有时候我们需要实现一个接口,但那个接口可能有很多抽象方法,我们只需要其中一个或多个方法。这时候我们可以创建一个类(适配器)实现接口,并重写接口中所有方法(空方法,有方法体,但方法体中无内容)。当我们需要接口中的某个方法时,只需继承类似于适配器的类 ,然后重写对应的方法即可。  将某个类的接口转换成我们期望的另一个接口表示,目的是消除由于接口不匹配所造成类的不兼容问题(字符流与字节流间互相适配)。


       每日鸡汤:太在意别人的看法,最后会有两种结局:要么自己累死,要么让别人整死。

Over!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值