java io库中为了字节流到字符流的转换使用的是适配器模式。
适配器模式(Adapter),将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式分为:类适配器和对象适配器
类适配器类图如下:
对象适配器类图如下:
其中:
Target:定义客户端使用的与特定领域相关的借口。
Adaptee:定义一个已经存在的接口,这个接口需要适配。
Adapter:对 Ataptee的接口与Target接口进行适配。
客户端在Adapter实例上调用一些操作。接着适配器调用Adaptee的操作实现这个请求。
类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。
举几个例子:
绘图编辑器(已经存在一个TextView类用于显示和编辑正文)
球队中有外籍球员(教练需要与其沟通)
电源适配器
验证给定客户地址的应用(已经存在一个用来验证加拿大客户地址的使用工具类)
PS2接口的鼠标(笔记本电脑只有USB口)