zoukankan      html  css  js  c++  java
  • 第2章 深入分析java I/O的工作机制(下)

    2.6 设计模式解析之适配器模式

      2.6.1 适配器模式的结构

        把一个类的接口变换成一客户端能接受的另一个接口。

        Target(目标接口): 要转换的期待的接口。

        Adaptee(源角色):需要适配的接口。

        Adapter(适配器):将源接口适配成目标接口,继承源接口,实现目标接口。

      2.6.2 JAVA I/O 中的适配器模式

        JAVA I/O中许多这样的需求,如将字符串数据变成字节数据保存到文件中,将字节数据转变成流数据等。

        InputStreamReader和OutPutStreamWriter类分别继承了Reader和Write接口,但是要创建他们的对象,必须传入InputStream和OutputStream的实例。InputStreamReader和    

        OutPutStreamWriter的作用就是将InputStream和Outputstream适配到Reader和Writer。

        InputStreamReader实现了Reader接口,并且持有了InputStream的引用,这里是通过StreamDecoder类间接持有的,因为从byte到char要经过编码。

        适配器是InputStreamReader, 源角色是InputStream代表的实例对象,目标接口是Reader。

                   此外,StringReader将一个String类适配到Reader接口;ByteArrayInputStream适配器将byte数组适配到InputStream接流处理接口。      

    2.7 设计模式解析之装饰器模式

      2.7.1 装饰器模式的结构

        将某个类重新装扮一下,使他比以前更加漂亮 或功能更多。但是原来类的使用者还不应该感受到装饰前后的不同,否则就破坏了原来类的结构,所以装饰器模式要做到对装饰使用者透明。

        Component: 抽象组件角色。定义了一组抽象的接口,规定了这个被装饰的组件都有哪些功能。

        ConcreteComponent: 实现了抽象组件的功能

          Decorator:  装饰器角色,它持有一个Component对象实例的引用,定义了与抽象组件一致的接口。

                   ConcreteDecorator:  具体的装饰器实现者,负者实现装饰器角色定义的功能。

      2.7.2 JAVA I/O 中的装饰器模式

        InputStream类就是以抽象组件存在的:而FileInputStream就是具体的组件,实现了抽象组件的所有接口;FilterInputStream就是装饰角色,实现了InputStream的所有接口,并且持有InputStream的对象实例的引用;BufferedInputStream是具体的装饰器实现者,它给inputstream附加了功能,作用就是使得InputStream读取的数据保存在内存中,而提高性能。

    2.8 适配器模式与装饰器模式的区别

       装饰器模式和适配器模式都一个别名是包装模式。适配器模式是要将一个接口转变成另外一个接口,通过改变接口来达到重复使用的目的;装饰模式是要保持接口,但是给增强接口功能,或者是提高性能。

  • 相关阅读:
    安装固态硬盘,小米笔记本13.3
    glut相关函数说明
    qt 显示中文
    简述FPS的计算方法
    【BZOJ3527】【ZJOI2014】—力(FFT)
    【BZOJ3653】【洛谷P3899】—谈笑风生(子弹滞销+长链剖分)
    【COGS2652】—天文密葬法(分数规划+长链剖分)
    【BZOJ3611】【HeOI2014】—大工程(虚树+dp)
    【BZOJ1758】【WC2010】—重建计划(点分治+分数规划)
    【BZOJ4765】—普通计算姬(分块+BIT)
  • 原文地址:https://www.cnblogs.com/liufei1983/p/7375847.html
Copyright © 2011-2022 走看看