适配器模式
当我们去国外旅行时,我们国内的插头不能直接插入到国外的插线板上,我们需要购买一个电源适配器来适配国外的插线板。
或者最新版的macbook pro 用的是utypec,并不能直接插入usb3.0的u盘,我们需要购买一个适配器做转换。
定义
将一个类的接口编程客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
实现
Target
目标角色是一个接口或者抽象类,是一个已经存在的角色,不可能去修改角色中的方法。
1 | public interface Target{ |
ConcreteTarget
具体的目标角色实现类。
1 | public class ConcreteTarget implements Target{ |
Adaptee
源角色,已经使用中的角色。需要将Adaptee转换为Target。
1 | public class Adaptee{ |
Adaptor
适配器角色。
1 | public class Adaptor extends Adaptee implements Target{ |
Use
1 |
|
扩展
当需要把多个Adaptee转换为Target的时候,就不能使用继承了,因为Java中不支持多继承。
这种方式叫做对象适配器。
我们可以使用聚合(关联)来完成适配。
类适配器是由类的继承关系完成的。
对象适配器是由类的关联关系纪念性耦合。