一.流
流,这里是对数据交换的形象称法。进程是运行在内存中的,在运行的过程中避免不了会与外界进行数据交互。比如将数据从硬盘、控制台、管道甚至是套接字(具体点应该是我们电脑上的网卡)读到我们进程锁所占据的地址空间中。这个数据交换的过程,我们称之为流。在流上的操作就所谓的I/O操作了。
二.装饰者模式
在介绍JAVA中的I/O操作之前我们先介绍一下装饰者模式。
装饰者模式就是对象的组合。我们如果给某个类增加新的方法,而且我们并不想修改这个类(或这个类有可能已经编译过无法修改),可以使用继承方式。在随后的时间又有加新的功能,可以再次使用继承的方式。这样虽然简单,但是随着时间的推移会导致我们子类个数迅速的膨胀。如果我们使用装饰者模式可以解决这种尴尬。
装饰者模式图示
Car是功能很简单的就只能跑,但是我们先让其天上飞,水里游,自动驾驶,甚至有可能在将来出现更多的功能,我们就可以使用装饰者模式。
-
- ICar 抽象构件角色,这个抽象构件可以是一个接口也可以是一个具体的类
- Car 具体构件角色
- superCar 装饰者,持有抽象构件的引用
- FlyCar,WaterCar,AICar 具体装饰角色,为具体构件添加新的功能
创建一个能飞和能游的汽车 new Water(new FlyCar(new car))
三、I/O中的装饰者模式
有部分类在图中没有表示出来
Input是抽象构件,FilterInputStream是装饰者
时间: 2024-12-20 13:21:27