装饰者模式

来源:互联网 发布:香港专业教育学院 知乎 编辑:程序博客网 时间:2024/05/17 02:25

1、定义
动态的给对象添加一些额外的职责。从扩展功能角度来讲,相对于通过继承生成子类,此方式更为灵活。

2、实例
Java I/O流:InputStream、OutputStream、Reader、Writer

分析InputStream

这里写图片描述

抽象构件(Component)角色:由InputStream扮演。这是一个抽象类,为各种子类型处理器提供统一的接口。
具体构件(Concrete Component)角色:由ByteArrayInputStream、FileInputStream、PipedInputStream以及StringBufferInputStream等扮演,它们实现了抽象构建角色所规定的接口。
抽象装饰(Decorator)角色:由FilterInputStream扮演。它实现了InputStream所规定的接口。
具体装饰(Concrete Decorator)角色:由DateInputStream、BufferedInputStream 以及两个不常用到的类LineNumberInputStream和PushbackInputStream扮演。

BufferedInputStream “装饰” 了InputStream的内部工作方式,使得流的读入操作使用缓冲机制。

LineNumberInputStream和PushbackInputStream也同样“装饰”了InputStream的内部工作方式, 前者使得程序能够按照行号读入数据;后者能使程序在读入的过程中退后一个字符。

DateInputStream子类读入各种不同的原始数据类型以及String类型的数据。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 驾驶证忘了年检怎么办 驾照快要到期了怎么办 驾照过期90天怎么办 异地驾迁回本地怎么办 驾照外地转本地怎么办 车转回老家保险怎么办 考驾照一直不过怎么办 驾照2年没考出来怎么办 驾考体检色盲怎么办 杭州居住告知单怎么办 郑州有房怎么办暂住证 郑州买车怎么办暂住证 在青岛办暂住证怎么办 异地买车暂住证怎么办 广州暂住证过期了怎么办 杭州暂住证过期了怎么办 居住卡到期了怎么办 居住卡过期了怎么办 在合肥办暂住证怎么办 在西安办暂住证怎么办 杭州没办暂住证怎么办 暂住证超过2月怎么办 机动车大本丢了怎么办 北京老年卡2018怎么办 暂住卡过期了怎么办 我暂住证过期了怎么办 我没租房怎么办暂住证 孩子异地入学籍怎么办 孩子入不了学籍怎么办 常州没有暂住证怎么办牌照 东莞居住证过期了怎么办 杭州告知单过期怎么办 杭州暂住证到期了怎么办 在杭州租房怎么办暂住证 杭州暂住证丢了怎么办 在宾馆住怎么办暂住证 上海学车暂住证怎么办 环保车贴丢了怎么办 交通事故交警不处理怎么办 哈尔滨冰雪大世界夏天怎么办 下围棋没天赋怎么办