将一个类的接口和另一个类的接口匹配起来,而无须修改原来的适配者接口和抽象目标类接口。
0x00 组成元素
- Target:目标抽象类,定义了客户端所需要的接口。
- Adaptee:适配者类,定义了一个需要被适配的接口。
- Adapter:适配器类,对Target和Adaptee进行适配。
0x01 分类
类适配器模式和对象适配器模式最大的区别在于适配器和适配者之间的关系不同,对象适配器模式中适配器和适配者之间是关联关系,而类适配器模式中适配器和适配者是继承关系。
- 优点:通过引入一个适配器,重用已有代码,无需修改原有代码。对于对象适配器还可以将多个接口适配到同一个目标。
- 缺点:Java不支持多重继承,对于类适配器,只能适配一个适配者。
- 适用场景:复用现有的类。