【设计模式】5、适配器设计模式之对象适配器

1、基本介绍

1)适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
2)适配器模式属于结构型模式
3)主要分为三类:类适配器模式、对象适配器模式、接口适配器模式

2、实现原理

1)适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容

2)从用户的角度看不到被适配者,是解耦的

3)用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法

4)用户收到反馈结果,感觉只是和目标接口交互

3、类适配器模式

1.接口类

public interface Votage50V {

    public int output50V();

}

2.目标类

public class Votage220V {

    public int output220V(){
        System.out.println("220V电压");
        return 220;
    }

}

3.适配器类

public class VoltageAdapter extends Votage220V implements Votage50V {

    @Override
    public int output50V() {
        int src = output220V();
        return src/4;
    }
}

 4、手机类

public class Phone {

   public void charge(Votage50V v){
       if (v.output50V()==50){
           System.out.println("手机充电中");
       }else {
           System.out.println("电源不适 手机充爆");
       }
   }

}

5.客户端类

public static void main(String[] args) {
        System.out.println("---类适配器---");
        Phone phone = new Phone();
        Votage50V v = new VoltageAdapter();
        phone.charge(v);
    }

5、类适配器模式注意事项和细节

1)Java是单继承机制,所以类适配器需要继承src类这一点算是一个缺点,因为这要求dst必须是接口,有一定局限性;
2)src类的方法在Adapter中都会暴露出来,也增加了使用的成本。
3)由于其继承了src类,所以它可以根据需求重写src类的方法,使得Adapter的灵活性增强了。

 

你可能感兴趣的:(【设计模式领域】)