从IO设计中看适配器和装饰器模式

适配器:

把一个类的接口变换成客户端期待的另外一种接口,从而使原本因接口不匹配无法在一起工作的2个类,可以在一起工作。
不要求对源对象的功能进行增强,但是会改变源对象的接口,以达到适配的目标!

 

装饰器:

    以对客户端透明的方式扩展对象的功能,是继承关系关系的一种替代方案!(透明+半透明)

 

 

InputStream   
  原始的流(适配器模式)
            ByteArrayInputStream  (byte[] 适配成InputStream)
            FileInputStream  (fd 适配成InputStream)
            StringBufferInputStream  (String 适配成InputStream)
            PipedInputStream  (OutputStream 适配成InputStream)
            
  链接流处理 (装饰器模式)    
            FilterInputStream    
                               BufferedInputStream  (inputStream装饰成BufferedInputStream)
                               DataInputStream   (inputStream装饰成BufferedInputStream)
                               LineNumberInputStream   (inputStream装饰成LineNumberInputStream)
                               PushbackInputStream       (inputStream装饰成PushbackInputStream)

             半透明装饰器

            ObjectInputStream     (inputStream装饰成ObjectInputStream)
            SequenceInputStream    (Enumeration<? extends InputStream> 装饰成SequenceInputStream)

 


改变功能,不改变接口(透明)

增强功能,改变接口(半透明)    

改变接口,不改变功能(适配器)

byte 适配成流  string适配成流  {不要求对源对象的功能进行增强,但是会改变源对象的接口,以达到适配的目标!}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值