概念:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

结构比较简单,有一个目标接口,需要将原始类的操作,通过适配器类转换成目标接口的操作。适配器类既要实现目标接口,也要继承原始类。这里我们来举一个变压器的例子。
- public interface Target {
- double getTargetVoltage();
- }
-
- public interface OriginalInterface {
- double getVoltage();
- }
-
- public class Original implements OriginalInterface {
- @Override
- public double getVoltage() {
- return 220;
- }
- }
-
- public class Adaptor implements Target {
- private OriginalInterface originalInterface;
- public Adaptor(OriginalInterface originalInterface) {
- this.originalInterface = originalInterface;
- }
- @Override
- public double getTargetVoltage() {
- return originalInterface.getVoltage() / 44;
- }
- }
-
- public class Demo {
- public static void main(String[] args) {
- Original originalInterface = new Original();
- Adaptor adaptor = new Adaptor(originalInterface);
- double targetVoltage = adaptor.getTargetVoltage();
- System.out.println("源电压: " + originalInterface.getVoltage());
- System.out.println("目标电压: " + targetVoltage);
- }
- }
如果大家需要视频版本的讲解,可以关注我的B站:
九、设计模式之适配器模式精讲