适配器:
把一个类的接口变换成客户端期待的另外一种接口,从而使原本因接口不匹配无法在一起工作的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适配成流 {不要求对源对象的功能进行增强,但是会改变源对象的接口,以达到适配的目标!}