没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
www.moandroid.com
JavaI/O总结
从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的
Java I/O总结——InputStream
Java I/O总结——OutputStream
Java I/O总结——Reader
Java I/O总结——Writer
Java I/O总结——补充说明
从new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的
从 new BufferedReader(new InputStreamReader(conn.getInputStream()))想到的?晚上睡在床
上,这一小段代码在我的脑海里不断浮现,因为它 看上去有些相似(在设计模式中的看到过类
似),但是实在想不起与那个模式相似了?
翻开设计模式书,已经好久没有看到过本书了,说实话对这本书中的大多数还不是很了解,但是
此刻看到能让我想到了,说明这个模式给我留下了深刻的影 响。翻开书找了半天,我一直以为
是 Strategy,后来看了下不是的,从头看到尾,终于找到了 Decorator(装饰)。把这个设计模
式又仔细读了一 遍,在这里与大家分享。
设计意图
动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator 模式相比较生产子类更为
灵活。
设计动机
有时候我们希望给某个对象增加而不是整个类增加一些功能,例如,给一个图像界面工具箱允许
你对人员一个用户界面的组件添加一些特性,比如说边框,或者窗口滚动。
使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例
所实现。但是这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式
和时机。
一种较为灵活的方式是将组件嵌入另外一个对象中,由这个对象添加边框,我们称这个嵌入的对
象为装饰。
结构
mo-Android 感受 Android 带给我们的新体验
www.moandroid.com
看了上面这张图,我记得当时顿时对 C++中的那么多 XXXInputStream,XXXXOutputStream 明白
了很多。对上面这很张图稍 微解释:Stream 抽象类位置一个内部缓冲区并提供一些操作
(PutInt,PutString)用于将数据存入流中,一段这个缓冲区满 了,Stream 就会调用抽象操
作 HandleBufferFull 进行实际数据传递,在 FileStream 中重定义这个操作,将缓冲区的数据传
递到文 件中去。
这里的关键类是 StreamDecorator,它维持了一个指向组件流的指针并将请求转发给它,
StreamDecorator 子类重定义 HandleBufferFull()操作并且在调用 StreamDecorator 的
HandleBufferFull 操作之前执行一些额外的动作。
例如:CompressingStream 子类用于压缩数据,而 ASCII7Stream 将数据转换成7位 ASICC 码,
现在我们创建 FileStream 类,它首先将数据压缩,然后将压缩了的二进制数据转换为 7 位 ASICC
码,我们用 CompressingStream 和 ASCII7Stream 装饰 FileStream:
Sream *aStream = new CompressingStream(
new ASCII7Stream(
mo-Android 感受 Android 带给我们的新体验
www.moandroid.com
mo-Android 感受 Android 带给我们的新体验
new FileStream(“aFileName”)
)
);
aStream->PutInt(12);
aStream->PutString(“www.moandroid.com”);
记得当时给我印象最深的就是在这个地方,突然间让我明白了很多。
总结说明
很早以前看到这个地方,感受颇深,今天再次看到这个地方,一方面时间已经过去了很多,另外
一方面对问题的理解也比较深入了。从 new BufferedReader(new
InputStreamReader(conn.getInputStream()))想到的,也许不是这段代码,而是当时那种学习
的心境,硬着头皮看 (尽管当时很多看不懂),而现在已经很久没有那种心境了,这次写下这
篇博客留恋。
随机日志
Android 2.0 SDK发布了
Android画图学习总结(三)——Drawable
[翻译]点基础知识——OpenGL ES Common/Common-Lite 规范(版本 1.1.12)
Android画图学习总结(一)——类的简介
MOTOBLUR模拟演示视频[Video]
Java I/O总结——InputStream
在前面介绍了Decorator(装饰)模式, 让我自己想起了刚开始工作时那段“痛并快乐”的学习
时光。在学习Android网络方面,也发现网络方面的很多内容都与Java I/O有关,因此暂时先停
下Android网络方面的学习,把Java I/O完整的学习下。我们将按照基类的顺序:InputStream、
OutPutStream、Reader、Writer来分别对Java I/O加以总结。
在这里强调以下 2 点:
如果你对设计模式中的Decorator(装饰)不是很了解,请仔细阅读:从new BufferedReader(new
InputStreamReader(conn.getInputStream()))想到的,在这篇博客中,我们详细介绍了Decortor
(装饰)模式。在了解了Decorator(装饰)后,我们对学习Java I/O的学习会容易很多,因为Java
I/O的核心就是采用了Decorator(装饰)模式。
Java I/O 系列的博客是我在学习 Java I/O 的基础上,对 Java I/O 的总结,关于 Java I/O 方面的
基础知识,我们在这里不详细说明。如果你对 Java I/O 完全不了解,请先找些关于 Java I/O 方面
剩余26页未读,继续阅读
资源评论
- a18942337162013-07-19还不错,就是看起来有点乱
xinster8192
- 粉丝: 6
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功