从IO中学习装饰器模式

2019-10-17  本文已影响0人  何甜甜在吗

最近在重学IO,我们在创建输入输出流的时候总会在构造函数中嵌套很多类,比如:BufferedReader in = new BufferedReader(new FileReader(fileName));,其实这段代码就是装饰器模式的应用,那什么是装饰器模式、有什么应用场景、优缺点是什么?

装饰器模式定义

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构,装饰器模式的类图如下:

装饰器类图
装饰器的角色介绍:

装饰器模式Demo

以写简历和hr读简历的例子来讲解装饰器模式

应用场景

装饰器模式就是使用在对已有的目标功能存在不足,需要增强时【不能改变已有类】,并且目标存在抽象接口
IO中应用了大量的装饰器模式,先来看一种类图:

IO类图
附:图片来源
Reader这块来讲解装饰器模式在IO中的应用

优缺点

和继承有啥区别

装饰器模式是多继承的一种替代方式,但是两者之间还是存在一些不同。装饰器模式比较灵活,因为它修饰哪个类是在运行时才确定的,而继承中,继承哪个类是在编写哪个继承类的时候就要确定下来的,即继承是编译时确认

上一篇 下一篇

猜你喜欢

热点阅读