美文网首页
Java IO中的装饰者模式

Java IO中的装饰者模式

作者: GoLearning轻松学 | 来源:发表于2022-02-12 11:24 被阅读0次
    image.png

    装饰模式在Java语言中的最著名的应用莫过于Java I/O标准库的设计了。

    由于Java I/O库需要很多性能的各种组合,如果这些性能都是用继承的方法实现的,那么每一种组合都需要一个类,这样就会造成大量性能重复的类出现。而如果采用装饰模式,那么类的数目就会大大减少,性能的重复也可以减至最少。因此装饰模式是Java I/O库的基本模式。

    根据上图可以看出:

    ●抽象构件(Component)角色:由InputStream扮演。这是一个抽象类,为各种子类型提供统一的接口。

    ●具体构件(ConcreteComponent)角色:由ByteArrayInputStream、FileInputStream、PipedInputStream、StringBufferInputStream等类扮演。它们实现了抽象构件角色所规定的接口。

    ●抽象装饰(Decorator)角色:由FilterInputStream扮演。它实现了InputStream所规定的接口。

    ●具体装饰(ConcreteDecorator)角色:由几个类扮演,分别是BufferedInputStream、DataInputStream以及两个不常用到的类LineNumberInputStream、PushbackInputStream。

    image.png

    抽象构件(Component)角色:由OutputStream扮演。这是一个抽象类,为各种子类型提供统一的接口。

    ●具体构件(ConcreteComponent)角色:由ByteArrayOutputStream、FileOutputStream、ObjectOutputStream、PipedOutputStream等类扮演。它们实现了抽象构件角色所规定的接口。

    ●抽象装饰(Decorator)角色:由FilterOutputStream扮演。它实现了OutputStream所规定的接口。

    ●具体装饰(ConcreteDecorator)角色:由几个类扮演,分别是BufferedOutputStream、CheckedOutputStream、CipheOutputSteam、DataOutputStream等类扮演。

    相关文章

      网友评论

          本文标题:Java IO中的装饰者模式

          本文链接:https://www.haomeiwen.com/subject/fxdakrtx.html